Android 时间格式转换为时间戳
在Android开发过程中,我们经常需要将各种时间格式转换为时间戳(Unix时间戳),以便进行时间比较、存储和计算。时间戳是一种以秒为单位的表示方式,从1970年1月1日(UTC)开始计算。
时间格式
常见的时间格式有以下几种:
- 标准时间格式:
yyyy-MM-dd HH:mm:ss
- 长日期格式:
yyyy年MM月dd日 HH时mm分ss秒
- 自定义时间格式:例如
dd/MM/yyyy HH:mm
转换流程
下面是一个将时间格式转换为时间戳的流程图:
flowchart TD
A[开始] --> B{输入时间}
B --> C[选择时间格式]
C -->|标准时间格式| D[解析时间]
C -->|长日期格式| E[解析时间]
C -->|自定义时间格式| F[解析时间]
D --> G[转换为时间戳]
E --> G
F --> G
G --> H[结束]
代码示例
下面是一个将标准时间格式转换为时间戳的示例代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimeConverter {
public static void main(String[] args) {
String timeStr = "2024-03-01 12:34:56";
long timestamp = convertToTimestamp(timeStr);
System.out.println("时间戳:" + timestamp);
}
public static long convertToTimestamp(String timeStr) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date = sdf.parse(timeStr);
return date.getTime() / 1000;
} catch (ParseException e) {
e.printStackTrace();
return -1;
}
}
}
解析长日期格式
如果输入的时间格式是长日期格式,例如 2024年03月01日 12时34分56秒
,我们可以使用以下代码进行解析:
public static long convertLongDateFormatToTimestamp(String timeStr) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
try {
Date date = sdf.parse(timeStr);
return date.getTime() / 1000;
} catch (ParseException e) {
e.printStackTrace();
return -1;
}
}
解析自定义时间格式
对于自定义时间格式,例如 dd/MM/yyyy HH:mm
,我们只需要修改SimpleDateFormat
的格式字符串即可:
public static long convertCustomFormatToTimestamp(String timeStr) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm");
try {
Date date = sdf.parse(timeStr);
return date.getTime() / 1000;
} catch (ParseException e) {
e.printStackTrace();
return -1;
}
}
结语
通过上述代码示例,我们可以看到,无论输入的时间格式是什么,我们都可以使用SimpleDateFormat
类进行解析,然后将其转换为时间戳。这种方法简单、高效,适用于各种时间格式的转换需求。在实际开发中,我们可以根据具体需求选择合适的时间格式,然后使用相应的解析方法进行转换。