【发布时间】:2010-01-28 15:09:30
【问题描述】:
[客户端 GWT 类]
我有一个日期对象...
Date dataObject = DateTimeFormat.getFormat("yyyy-MM-dd'T'HH:mm:ss.SSS")
.parse("2009-10-12T00:00:00.000);
这很好用。但是,当我这样做时:
dateObject.getTime();
它使用带有夏令时的 GMT 返回 UNIX 时间毫秒,因此使它成为我无法使用的 UNIX 时间。我需要它在UTC。我该怎么做?
目前我正在解析一个日期,它正在返回:
'Thu Apr 16 08:46:20 GMT+100 2009' @ '1239867980191'
但是,我通过的日期比这个时间少 1 小时(7:46 而不是 8:46!)。
我如何传递它是 UTC 的事实?或者如果它不能使用 UTC(这很荒谬),我如何在没有夏令时的情况下使用 GMT?
【问题讨论】:
-
没有“使用 GMT 和夏令时的 UNIX 时间(单位)毫秒”的概念。自“纪元”以来经过的毫秒数是固定的,与 GMT 和/或夏令时无关。如果您正在使用夏令时,您可能会输入格式错误的时间字符串和/或忘记精确,或者错误地将您的时间(以毫秒为单位)转换回另一种格式。但是自纪元以来的毫秒数(Java 和 Unix 以及许多其他技术都使用)与 GMT 和夏令时完全无关。
-
OldEnthusiast :这应该是一个答案。
-
嗯,你肯定会获得今日学究奖。
-
不是真正的吊坠:'epoch+DST' 不是在 GWT 或任何地方使用的真正时间戳格式。
getTime按预期返回自 UTC 纪元以来的普通时间;如果 DST/时区正在改变结果,那么其他地方就有问题,例如。在解析步骤中。 -
是的,我认为这很明显。我不是想更改
getTime,而是尝试将 TimeZone 添加到解析中......这只是我正在做的事情。因此问题I need it in UTC. How do I do this?。我会粘贴我已经想出的内容,但我怀疑人们会想要阅读同一事物的 30 种不同组合。