g.r*_*ion 3 java android java.util.date
我对涉及时区的 java.util.Date 的 unix 时间戳转换有点困惑。
我有一个 Unix 时间戳"1367832568"。它是 UTC 日期(2013 年 5 月 6 日星期一 17:29:28 GMT+00:00)。当我执行以下操作时:
Date d = new Date(1367832568 * 1000);
Run Code Online (Sandbox Code Playgroud)
它给了我Mon May 06 17:29:28 GMT+08:00 2013这是不正确的。它应该给我:
Mon May 07 01:29:28 GMT+08:00 2013
Run Code Online (Sandbox Code Playgroud)
因为unix时间戳实际上是UTC日期。所以这很令人困惑。我应该怎么做才能将 UTC unix 时间戳正确转换为 UTC Date 对象。
我不确定您究竟如何格式化日期对象,但是通过将时区设置为日期格式对象(格林威治标准时间),我可以得到
2013 年 5 月 6 日星期一 09:29:28 GMT
这与您正在寻找的日期相同。
long time = 1367832568 * (long) 1000;
Date date = new Date(time);
SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy a");
format.setTimeZone(TimeZone.getTimeZone("GMT"));
Log.d("date", format.format(date));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7048 次 |
| 最近记录: |