日期类
表示
在内部,Java Date 对象表示为 long; 它是自特定时间(称为纪元 ) 以来的毫秒数。原始的 Java Date 类具有处理时区等的方法,但这些方法已被弃用,以支持当时新的 Calendar 类。
因此,如果你想要在代码中执行的操作代表特定时间,则可以创建 Date 类并存储它等。但是,如果要打印出该日期的人类可读版本,则可以创建 Calendar 类并使用其格式来生成小时,分钟,秒,天,时区等。请记住,特定毫秒在不同时区显示为不同的小时数; 通常你想在本地时区显示一个,但格式化方法必须考虑到你可能想要为其他一些显示它。
另请注意,JVM 使用的时钟通常不具有毫秒精度; 时钟可能每 10 毫秒只能滴答一次,因此,如果计时,你不能依赖于在那个级别准确测量事物。
导入声明
import java.util.Date;
Date
类可以从 java.util
包中导入。
警告
Date
实例是可变的,因此使用它们会使编写线程安全的代码变得困难,或者可能意外地提供对内部状态的写访问。例如,在下面的类中,getDate()
方法允许调用者修改事务日期:
public final class Transaction {
private final Date date;
public Date getTransactionDate() {
return date;
}
}
解决方案是返回 date
字段的副本或使用 Java 8 中引入的 java.time
中的新 API。
Date
类中的大多数构造函数方法已被弃用,不应使用。几乎在所有情况下,建议使用 Calendar
类进行日期操作。
Java 8
Java 的 8 引入了新的时间和日期 API 的封装 java.time
,包括 LOCALDATE 的和本地时间 。java.time
包中的类提供了一个易于使用的大修 API。如果你正在编写 Java 8,强烈建议你使用此新 API。请参阅日期和时间(java.time。*) 。