【问题标题】:android convert unix time to utc dateandroid将unix时间转换为utc日期
【发布时间】:2013-06-09 08:19:42
【问题描述】:

我对涉及时区的 unix 时间戳转换为 java.util.Date 有点困惑。

我有一个 "1367832568" 的 unix 时间戳。这是一个 UTC 日期(2013 年 5 月 6 日星期一 17:29:28 GMT+00:00)。当我执行以下操作时:

Date d = new Date(1367832568 * 1000);

它给了我Mon May 06 17:29:28 GMT+08:00 2013 这是不正确的。它应该给我:

Mon May 07 01:29:28 GMT+08:00 2013

因为 unix 时间戳实际上是 UTC 日期。所以这很令人困惑。我应该怎么做才能将 UTC unix 时间戳正确转换为 UTC Date 对象。

【问题讨论】:

  • 尝试将两者都转换为 long 日期参数:Date d = new Date(((long)1367832568 * (long)1000));

标签: java android java.util.date


【解决方案1】:

我不确定你是如何格式化你的日期对象的,但是通过将时区设置为 dateformat 对象(到 GMT)我可以得到

格林威治标准时间 2013 年 5 月 6 日星期一 09:29:28

这是您要查找的同一日期。

    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));

【讨论】:

  • 我不想要字符串。我想要带有 GMT 日期的日期对象。您正在做的是获取本地 GMT 日期对象并使用格式化程序并输出 GMT 字符串。我需要 GMT Date 对象。代码中的第 2 行应该给出 GMT 日期对象。这就是我想要的。
  • 您打印出来的日期也不是正确的。我认为它改变了因为你的时区。正确的输出应该是 Mon May 06 17:29:28 GMT+00:00 2013
  • 您不能在 Date 对象中设置语言环境,请改用 Calendar。根据epochconverter.com,时间是正确的
猜你喜欢
  • 2014-05-06
  • 1970-01-01
  • 2022-12-12
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 2021-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多