java - 我需要更改日期和时区吗

标签 java java.util.calendar

我有一个日历对象 [ 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/

相关文章:

java - 为什么我的 Java Calendar.setTime() 偶尔会设置错误的时间?

java - Jboss Java Date 夏令时

java - 使用 Calendar.MINUTE add 方法向 Calendar 对象添加秒数

java - 将 MySql Dump 转换为 h2db 文件

java - 我有一个 firebase 数据库,我想从中访问一些嵌套节点,然后将数据列表添加到该特定节点

java - 为什么在向 java 数组中插入新元素时会采用负索引值?

java - 计算日期差异时出现奇怪的值

java - 使用 Java Servlet 进行长时间登录的最佳方式

java - 以编程方式在 Jetty 7 中注册一个 servlet

java - 日历字段中的不同/不正确结果