跳到正文
Pollex's blog
返回

关于安卓的时间获取和转换

最近做了个日历相关的需求,发现了不少关于时间获取和转换的问题,特此记录。

一、根据年月日获取时间戳

常用的有两种方式,一种是用Time,一种是用Calendar,代码如下:

Time:

Time time = new Time("GMT+8");
time.setToNow();
int year = time.year; // 年
int month = time.month; // 月,从 0 开始
int day = time.monthDay; // 日
long timeStamp = time.toMillis(true); // 时间戳(忽略 isDst 字段,自动计算夏令时)

Calendar:

Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(TimeZone.getTimeZone("GMT+8")); // 时间戳与时区无关,设置时区只影响 get(YEAR/HOUR…) 的结果
calendar.getTimeInMillis();
calendar.get(Calendar.YEAR);
calendar.get(Calendar.MONTH); // 从 0 开始
calendar.get(Calendar.DAY_OF_MONTH);

要注意的是,时间戳本身是 UTC 毫秒数,与时区无关;Calendar 设置时区后,变化的只是年月日等字段。


分享这篇文章:

上一篇
Android通过包名启动任意APP
下一篇
WebView的优化总结