java - java.util.Date 是否使用 TimeZone?

标签 java date timezone

我有 2 台不同的计算机,每台都有不同的时区。

在一台计算机上打印 System.currentTimeMillis(),然后在两台计算机上打印以下命令: System.out.println(new Date(123456)); --> 123456 代表计算机 #1 中 currentTimeMillis 中的数字。

第二次打印(尽管是硬编码的)导致两台计算机上的打印不同。 这是为什么呢?

最佳答案

一些迂腐的细节怎么样。

java.util.Date与时区无关。在 javadoc 中这么说。

您想要与特定时区相关的东西吗?那是 java.util.Calendar .

棘手的部分?当您打印这些东西(使用 java.text.DateFormatsubclass )时,会涉及到日历(涉及时区)。见 DateFormat.setTimeZone() .

确实看起来(尚未检查实现)像 java.util.Date.toString() 一样通过 DateFormat。因此,即使是我们(大部分)独立于时区的类也会因时区而变得困惑。

想要从我们的纯无时区 Date 对象中获取时区信息吗?有Date.toGMTString() .或者您可以创建自己的 SimpleDateFormatter 并使用 setTimeZone() 来控制自己使用哪个区域。

关于java - java.util.Date 是否使用 TimeZone?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1516213/

相关文章:

java - 执行yardstick-ignite框架时发生权限错误

java - 如何删除字符串池中未引用的值?

java - MM/dd/yyyy 格式的 xmlgregoriancalendar

java - java中基本数据格式转换

java - 两个日期之间的 Scala 随机日期

timezone - 无论我的时区偏移量如何,convert_timezone 'America/New_York' 都会起作用吗?

即使在设置 date_default_timezone_set 之后,PHPExcel 也会得到错误的时区

java - JVM 是否交换堆?

java - 使用缓冲读取器读取随机访问文件

php 时区格式的日期时间