java.util.Date是否使用时区?
我有两台不同的电脑,每台都有不同的时区。
在一台计算机上,im printing System.currentTimeMillis()
,然后在两台计算机上打印以下命令:System.out.println(new Date(123456));
–>123456表示计算机1中currentTimeMillis
中的数字。
第二次打印(尽管打印了硬编码)会在两台计算机上产生不同的打印结果。为什么?
回答:
java.util.Date与时区无关。在javadoc中这么说。
你想要一个特定时区的东西吗?这是java.util.Calendar。
棘手的部分?当您打印这些内容(使用java.text.DateFormat或子类)时,它包含一个日历(包含一个时区)。请参见DateFormat.setTimeZone()。
它看起来确实(没有检查实现)像java.util.Date.toString()通过了日期格式。所以即使是我们的(大部分)时区独立类也会被时区搞得一团糟。
想把时区的东西从我们纯粹的无分区约会对象中拿出来吗?有日期。toGMTString()。或者可以创建自己的SimpleDateFormatter并使用setTimeZone()来控制自己使用的区域。
以上是 java.util.Date是否使用时区? 的全部内容, 来源链接: utcz.com/qa/407657.html