java日历时区奇怪的东西

问题描述 投票:0回答:2

}

输出:
创建日期:10月6日16:25:00 EDT2013

MILLIS:1381091100000

默认CAL:年:2013年,月份:9,日期:6,小时:4,分钟:25,秒:0,AM_PM: +1

EST:年:2013年,月份:9,日期:6,小时:8,分钟:25,秒:0,AM_PM: +1


您可以看到,我在test2()中使用了从test1()中获得的同一millis。测试1中的小时是预期的4时,在Test2中是8!是什么引起了这个问题?
谢谢

您的“默认cal”在您的本地时区打印时间:edt(-4) 您的“ EST”日历在UTC/GMT时区打印时间,因为“ Americas/new_york”是不正确的(extra new_york(extra's'),它应该是“ America/new_york”,因为它不正确,TimeZone.getTimeZone(...)返回UTC


avoid遗产日期时间班
java calendar timezone
2个回答
1
投票
Date

Calendar

0
投票
SimpleDateFormat

之类的传统日期时间课是一个可怕的混乱,令人难以置信的设计。永远不要使用它们

java.Time


在现代Java中,仅使用java 8+内置的
java。
在您的
test1

代码中,您的输入“ 2013-10-06T16:25”以日期为日期。解析为

java.time.LocalDateTime

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.