gpt4 book ai didi

java - Java/GWT 中的时区(客户端)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:52:27 24 4
gpt4 key购买 nike

[客户端 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?

最佳答案

您上次的编辑让事情变得更清楚了。

基本上,你迷茫了,你已经得到了你想要的。

1239867980191 毫秒自大纪元转换为格林威治标准时间 2009 年 4 月 16 日星期四 7:46:20.191。同一时刻转换为同一天,但在 GMT+01 时区为 8:46:20.191。如果您的输入字符串指定为“7:46:20.191”并且您确实从 Date.getTime() 得到了 1239867980191 那么恭喜您,解析代码将您的“7:46:20.191”理解为在GMT 时区,并正确执行。

如果之后您在打印时得到“8:46:20”,这只是因为您使用 GMT+01 时区来显示该时刻。请注意,该字符串包含 GMT+100 正是为了通知您它使用该时区进行显示。 Date 实例代表的时刻 仍然是您希望它包含的时刻。请记住,Date 实例代表一个瞬间,时区的概念不适用:时区用于将瞬间转换为日历元素(天、小时...)并返回。

要将 Date 转换为可显示的字符串,请使用 DateTimeFormat.format(Date, TimeZone),它允许您指定要用于该字符串的时区。

关于java - Java/GWT 中的时区(客户端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2155469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com