【发布时间】:2013-12-04 16:35:41
【问题描述】:
我对使用 Date() 方法创建 Date 对象有疑问。在创建 Date() 对象时,是否需要从系统获取本地时间?
【问题讨论】:
我对使用 Date() 方法创建 Date 对象有疑问。在创建 Date() 对象时,是否需要从系统获取本地时间?
【问题讨论】:
是的。
来自 Javadoc:
日期()
分配一个 Date 对象并初始化它,以便它 表示它被分配的时间,精确到 毫秒。
但是,众所周知,java.util.Date 不被重视。大多数人会建议您改用Joda-Time's LocalDate。
【讨论】:
我对是否是当地时间的问题的回答是否定的。
我们必须区分:Date() 无参数构造函数基于 System.currentTimeMillis(),它是自 UNIX 纪元以来毫秒的全局相等表示(不计算闰秒)。这个计数在地球上的任何地方都提供相同的、正确的操作系统时钟设置。 => 因此没有当地时间
但请注意,java.util.Date 通过 toString() 的表示是本地的,这意味着依赖于 jvm 的默认时区设置。这是由 java.util.Date 引起的许多突出的混淆示例之一。
【讨论】: