我有一个日历对象 [ localDate ],它位于美国东部时间:比如 11 月 6 日 15:34...并且我将时区设置为 GMT+5:30...
现在,当我执行Calendar.HOUR_OF_DAY
时,它返回我2...我知道这是完美的..因为它是格林尼治标准时间15:34 + 5小时,然后是时区+5:30..这只是意味着.. 26:04 这是 7 号的 2 号。
但是,日期仍然保持为 11 月 6 日...并且 localDate.getTime()
仍然返回 11 月 6 日..甚至当我打印 localDate 时..它显示时区为 +5 :30 ,但这一天和其他一切仍然是原来的本地时间..[ 即 11 月 6 日 ]
我根本无法理解为什么会这样......
编辑::
所以我知道我不需要更改日期和时区。只需更改适合该位置的日期显示方式,并且可以使用已设置的时区来完成。
最佳答案
localDate.getTime()
返回一个 java.util.Date
,它是自固定点以来的原始时间量。时区仅影响人类可读的时间点表示。
世界标准时间 11 月 6 日 15:34 - 5
和
世界标准时间 11 月 7 日 02:04 + 5:30
两者在绝对时间上完全相同。这只是描述同一时刻的两种不同的人类方式。
因此更改日历上的时区不会影响 getTime() 返回的值
关于java - 我需要更改日期和时区吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19823789/