我有一个毫秒级的日期-6847824600000。这是pig中使用的输入数据,通过使用todate()函数进行转换,该函数内部使用joda date time来计算日期。
输出格式类似于hour minitue second-00:23:28(实际),但在java date中,它给出的是00:00:00(预期的)输出。
当地时区是亚洲/加尔各答。我也尝试过etc/gmt+0时区。它给出的结果与javadate不同。我从来没用过乔达的约会时间。请帮助如何获得java date的类似输出。
我有一个毫秒级的日期-6847824600000。这是pig中使用的输入数据,通过使用todate()函数进行转换,该函数内部使用joda date time来计算日期。
输出格式类似于hour minitue second-00:23:28(实际),但在java date中,它给出的是00:00:00(预期的)输出。
当地时区是亚洲/加尔各答。我也尝试过etc/gmt+0时区。它给出的结果与javadate不同。我从来没用过乔达的约会时间。请帮助如何获得java date的类似输出。
1条答案
按热度按时间eqfvzcg81#
你偶然发现了一个有趣的怪事。
似乎当时区应用于1752年的这个日期时间时,在java.time或joda time下,utc的偏移量神秘地改变了7分2秒。
而不是偏移
-08:00
我们看到了-07:52:58
.旧的java.util.date类没有显示出这样的惊讶。
我没有解决办法或解释。但我可以证明这个秘密。
美国/洛杉矶时区
首先我们试试我自己的默认时区
America/Los_Angeles
.java.util.date文件
java.time文件
乔达时间
转储到控制台。
当你跑的时候。
亚洲/加尔各答时区
现在我们将这一行添加到顶部,以指定
Asia/Kolkata
作为时区。---| java.util.Date |-------
JVM’s current default time zone: sun.util.calendar.ZoneInfo[id="Asia/Kolkata",offset=19800000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null]
date: Mon Jan 01 00:00:00 IST 1753
---| java.time |-------
Current ZoneId: Asia/Kolkata
instant: 1752-12-31T18:30:00Z | zdt: 1753-01-01T00:23:28+05:53:28[Asia/Kolkata]
---| Joda-Time |-------
Current DateTimeZone: Asia/Kolkata
jodaInstant: 1752-12-31T18:30:00.000Z | dateTime: 1753-01-01T00:23:28.000+05:53:28