[客户端GWT类]
我有一个日期对象......
Date dataObject = DateTimeFormat.getFormat("yyyy-MM-dd'T'HH:mm:ss.SSS")
.parse("2009-10-12T00:00:00.000);
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,当我这样做时:
dateObject.getTime();
Run Code Online (Sandbox Code Playgroud)
它使用具有夏令时的GMT返回UNIX时间毫秒,因此使其成为我无法使用的UNIX时间.我需要它在UTC.我该怎么做呢?
目前我正在解析一个日期,它正在给我回复:
'Thu Apr 16 08:46:20 GMT+100 2009' @ '1239867980191'
Run Code Online (Sandbox Code Playgroud)
然而,我传递的日期比这个时间少了1小时(7:46而不是8:46!).
我如何传递UTC的事实?或者,如果它不能使用UTC(这将是荒谬的),如何在没有夏令时的情况下使用GMT?
你的上一次编辑让事情更加清晰.
基本上,你很困惑,你已经得到了你想要的东西.
自Epoch转换为2009年4月16日星期四,格林威治标准时间区域7:46:20.191以来的1239867980191毫秒.同一天即转换为同一天,但GMT + 01时区为8:46:20.191.如果您的输入字符串指定为"7:46:20.191"并且您确实从此获得了1239867980191,Date.getTime()则解析代码将您的"7:46:20.191"理解为在GMT时区中进行解释,并且正确执行.
如果之后您在打印时得到"8:46:20",这只是因为您使用GMT + 01时区来显示该瞬间.请注意,该字符串包含GMT+100精确通知您它使用该时区进行显示.该瞬间其Date实例表示仍然是正是你希望它包含的瞬间.请记住,一个Date实例表示一个时刻,对于该时刻,不适用时区概念:时区用于将时刻转换为日历元素(天,小时......)和返回.
要将a转换Date为可显示的字符串,请使用DateTimeFormat.format(Date, TimeZone)该字符串指定要用于该字符串的时区.
| 归档时间: |
|
| 查看次数: |
11507 次 |
| 最近记录: |