1. 第一代日期类
![image]()
![32ca9bde23de1feef9c8120957905773]()
代码示例
package com.baidu.www;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.SimpleTimeZone;
/**
* Date
* 简介:
* 日期类:用于操作时间相关信息
* 构造方法:
* Date() 构造一个日期对象,当前系统时间,精确到毫秒
* Date(long) 构造一个日期对象,时间为自“1970年1月1日00:00:00 GNT”起,至指定参数的毫秒数
* 成员方法:
* long getTime() 将日期对象转换成对应时间的毫秒值
*/
public class Test {
public static void main(String[] args) throws ParseException {
// 测试Date类
// 测试空参构造,采用当前操作系统的默认时间
// 默认输出的日期格式是国外的方式,因此通常需要对格式进行转换
Date date1 = new Date();
System.out.println("当前时间:" + date1);
// 创建该对象可以制定相应的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");
String format = sdf.format(date1);
System.out.println(format);
// 可以把格式化的String转换为对应的Date
String s = "2025年08月19日 08:00:20 星期二";
Date parse = sdf.parse(s);
System.out.println(parse);
// 获取当前操作系统的毫秒值
long time = date1.getTime();
System.out.println("当前时间:" + time);
// 创建指定时间
Date date2 = new Date(1755010487159L);
System.out.println("指定时间:" + date2);
}
}
2. 第二代日期类
![a917b0e6539d90a40d8462ee503b89c4]()
![15feaf9d43c7d38d91218588e7a2282e]()
继承关系
![e077c22eca593d66355e705685daa772]()
代码示例
package com.baidu.www;
import java.util.Calendar;
/**
* * Calendar类
* * 简介:
* * 日历类,用于操作日期相关信息
* 是一个抽象类,构造器是private
* 通过getinstance()获取实例
* 提供大量的方法和字段
* 没有提供对应的格式化的类
* 如果需要24小时,HOUR -> HOUR_OF_DAY
* * 成员方法:
* * static Calendar getInstance(); 根据当前系统时区和语言环境获取日历对象
* * int get(int field); 返回给定日历字段的值
* * void set(int field, int value); 将给定的日历字段设置为指定的值
*/
public class Test2 {
public static void main(String[] args) {
// 测试Calendar类
// 获取Calendar类型的对象
Calendar c = Calendar.getInstance();
// System.out.println(c);
// 获取年月日的信息
System.out.print(c.get(Calendar.YEAR) + "年");
System.out.print(c.get(Calendar.MONTH) + 1); // 0~11表示月份,表示1~12月
System.out.println("月"+c.get(Calendar.DATE)+"日");
System.out.println("时:"+c.get(Calendar.HOUR));
System.out.println("时:"+c.get(Calendar.HOUR_OF_DAY));
System.out.println("分:"+c.get(Calendar.MINUTE));
System.out.println("秒:"+c.get(Calendar.SECOND));
// 设置指定时间 2055 5 5
// c.set(Calendar.YEAR, 2055);
// System.out.print(c.get(Calendar.YEAR) + "年");
// System.out.print(c.get(Calendar.MONTH) + 1); // 0~11表示月份,表示1~12月
// System.out.println("月"+c.get(Calendar.DATE)+"日");
c.set(2055,4,5);
System.out.print(c.get(Calendar.YEAR) + "年");
System.out.print(c.get(Calendar.MONTH) + 1); // 0~11表示月份,表示1~12月
System.out.println("月"+c.get(Calendar.DATE)+"日");
}
}
3. 第三代日期类
![9fc7929ff0a4ccb8b2d533896330e8c4]()
继承关系
![8e7dffed7cb16f50c712687d1f38142a]()
(1)LoadDateTime类
![10b47da554c2f305dc4839448a5a5cf5]()
代码示例
package com.baidu.www;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
public class LocalDate_ {
public static void main(String[] args) {
// 第三代日期
// 使用 now 返回表示当前日期时间的对象
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);
System.out.println("年:" + ldt.getYear());
System.out.println("月:" + ldt.getMonth());
System.out.println("月:" + ldt.getMonthValue());
System.out.println("月:" + ldt.getDayOfMonth());
System.out.println("时:" + ldt.getHour());
System.out.println("分:" + ldt.getMinute());
System.out.println("秒:" + ldt.getSecond());
// 获取年月日
LocalDate now = LocalDate.now();
System.out.println(now);
// 获取时分秒
LocalTime now2 = LocalTime.now();
System.out.println(now2);
}
}
![0e306346071cf9a1378d97b2e39e101b]()
代码示例
package com.baidu.www;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class LocalDate_ {
public static void main(String[] args) {
// 第三代日期
// 使用 now 返回表示当前日期时间的对象
LocalDateTime ldt = LocalDateTime.now();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH小时mm分钟ss秒");
String strDate = dtf.format(ldt);
System.out.println(strDate);
}
}
(3)Instant时间戳
![469d759e9810075a431672a807efeb25]()
代码示例
package com.baidu.www;
import java.time.Instant;
import java.util.Date;
public class LocalDate_ {
public static void main(String[] args) {
Instant instant = Instant.now();
System.out.println(instant);
Date date = Date.from(instant);
System.out.println(date);
Instant instant1 = date.toInstant();
System.out.println(instant1);
}
}
(4)更多方法
![490a3f33100d50bf2aa1ead570b19b46]()
代码示例
package com.baidu.www;
import java.time.LocalDateTime;
public class LocalDate_ {
public static void main(String[] args) {
// 提供plus和minus方法对当前时间加减
LocalDateTime ldt = LocalDateTime.now();
// 890天后
System.out.println(ldt.plusDays(890));
// 3456分钟前
System.out.println(ldt.minusMinutes(3456));
}
}
4. 简要概述
![0c4e4143d9af5c39da20e01d32de90db]()