android 将unix时间转换为utc日期

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 对象。

Mr.*_*.Me 5

我不确定您究竟如何格式化日期对象,但是通过将时区设置为日期格式对象(格林威治标准时间),我可以得到

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)