【问题标题】:Having problems on getting actual time in UTC Android在 UTC Android 中获取实际时间时遇到问题
【发布时间】:2014-04-15 05:40:46
【问题描述】:

我试图将 UTC 中的日期和时间以毫秒为单位,但反复遇到同样的问题。结果应该类似于“63530139420000”,但每次返回值“1394547490884”。

要以 UTC 格式获取日期和时间,我使用以下方法:

long dateutc = System.currentTimeMillis();

谁能告诉我是什么问题?

【问题讨论】:

  • 很难看到您每次都获得相同的价值。另外,你怎么知道结果应该是什么?后一个数字看起来比前者更像当前时间。取后一个数字并将其转换为日/月/年,然后对前者执行相同操作。
  • 我说错了。我没有得到相同的值,但是每次执行时它都会明显增加,但是我的老师告诉我正确的时间应该是“63530139420000”之类的值,这比我得到的值要高得多。我使用的方法是否正确?
  • 您以正确的方式获取时间,而您对数字应该是什么样子的期望是错误的。我无法解释为什么你的老师认为这个数字应该是这样的,因为事实并非如此。我想它可能会在未来一段时间......

标签: java android datetime utc


【解决方案1】:

您的代码正确获取自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数。

有趣的是,如果您将老师指定的值除以一年中的毫秒数,您将得到 2014.5。所以要么你的老师不知道 currentTimeMillis() 做了什么,要么他想要从第 0 年开始的毫秒数(这对我来说没有任何意义)。

要计算自给定日期以来的毫秒数,您只需创建两个日期实例并从 getTime() 中减去毫秒值。

【讨论】:

  • 我认为他可能想要自一年以来的毫秒数(我想)。如果是这种情况,我如何得到它?
【解决方案2】:

你可以用这个。

DateFormat df = DateFormat.getTimeInstance();
df.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateutc = df.format(new Date());

【讨论】:

  • 当我输入该代码时,它显示以下错误:“方法 getTimeInstance() 未定义 DateFormat 类型”。我该如何解决?
  • 使用 java.util.date 可能你使用其他日期
  • 你必须将 DateFormat 导入为 import java.text.DateFormat;
  • 当我输入此代码时,它会显示实际时间,但我如何将其转换为 UTC?
  • 现在检查我的答案。
猜你喜欢
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-10
  • 1970-01-01
相关资源
最近更新 更多