Java 关于时间日期的处理有两个基础类 Calendar 和 Date 。
Calendar 有子类 GregorianCalendar ;
Date 有子类 (java.sql.) Date, Time, Timestamp ;
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:
Calendar rightNow = Calendar.getInstance();
GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。
重要方法 :
public void add(int field,int amount) 根据日历规则,将指定的(有符号的)时间量添加到给定的日历字段中。
对于日期运算很便捷。
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化和规范化。
简单例子:
java.sql.Date : 一个包装了毫秒值的瘦包装器 (thin wrapper),它允许 JDBC 将毫秒值标识为 SQL DATE 值。毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以来经过的毫秒数。
Date(long date) 使用给定毫秒时间值构造一个 Date 对象。
java.sql.Time : 一个与 java.util.Date 类有关的瘦包装器 (thin wrapper),它允许 JDBC 将该类标识为 SQL TIME 值。Time 类添加格式化和解析操作以支持时间值的 JDBC 转义语法。
Time(long time) 使用毫秒时间值构造 Time 对象。
java.sql.Timestamp : 一个与 java.util.Date 类有关的瘦包装器 (thin wrapper),它允许 JDBC API 将该类标识为 SQL TIMESTAMP 值。它通过允许小数秒到纳秒级精度的规范来添加保存 SQL TIMESTAMP 小数秒值的能力。Timestamp 也提供支持时间戳值的 JDBC 转义语法的格式化和解析操作的能力。
Timestamp(long time) 使用毫秒时间值构造 Timestamp 对象。
Timestamp currentTime = new Timestamp(System.currentTimeMillis());
System.out.println("当前日期是:" + df.format(currentTime));