2014-07-09 152 views
0

我的Time对象toString()返回19700101T000000America /纽约(4,0,0,0,18000)混乱的Time.toMillis(布尔)

的字段如下:

allDay - false 
gmtOff - 0 
hour - 0 
isDst - -1 
Min - 0 
Month - 0 
MonthDay - 1 
Second - 0 
TimeZone - America/New_York 
Year - 0 
YearDay - 1970 

但是,当我使用Time.toMillis(false)时,它始终返回大于0的值。由于时间代表1970年1月1日,我希望返回值0。即使是第二个对象的字段也是有0的。但仍然是一个不同的价值。

我该如何解决这个问题?

+0

世界民间时间的基础不是美国,而是UTC:http://en.wikipedia.org/wiki/Coordinated_Universal_Time;) – Blacklight

回答

0

这是因为您选择的时区是America/New_York。 时区应该是GMT,它返回0值。

toMillis方法将返回自epoch起的毫秒数。时代是1970年1月1日00:00:00 UTC(格林威治标准时间)。

+0

如果我将使用Time.isEpoch(),它会返回true吗? –

+0

如果将时间对象的时区更改为GMT,它将等于时期。 – Somil

+0

构建时间对象时,可以使用Time t = new Time(“UTC”); – Somil