Date
SimpleDateFormat
Date d = new Date();
System.out.println(d);//输出当前时间
long it = d.getTime();//返回自1970年1月1日00:00:00到date的时间
Date d2 = new Date(it);//将毫秒值转换为时间
System.out.println(d2);
d2.setTime(it+1000);//将d2转换为输入参数对应的时间
System.out.println(d2);
//简单日期格式化输出
SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");//规定格式
String res = s.format(d);//date 按格式输出 2024年08月18日 15:23:18 周日 下午
System.out.println(res);
String s2 = s.format(it);//long 按格式输出 2024年08月18日 15:23:18 周日 下午
System.out.println(s2);
//将字符串时间解析为日期对象
String str = "2024.05.08 12:10:34";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");//两者格式要对应
try {
System.out.println(sdf.parse(str));//解析 Wed May 08 12:10:34 CST 2024
} catch (ParseException e) {
e.printStackTrace();
}
jdk8以后新增的API,鉴于jdk8之前的API有很多问题,例如线程不安全,现在大都使用新的API。
LocalDate
是 Java 8 中的一个类,用于表示没有时间和时区的日期。它是不可变且线程安全的,专注于年 月 日的处理。
LocalDate ld = LocalDate.now();//获取当前时间
System.out.println(ld);//2024-08-18
LocalDate ld2 = LocalDate.of(2025, 12, 12);
System.out.println(ld2);
// 从字符串解析
String str = "2024-02-28";//只能解析这种格式
LocalDate ld3 = LocalDate.parse(str);
System.out.println(ld3);//2024-02-28
System.out.println(ld3.getYear());//年 2024
System.out.println(ld3.getMonth());//月 FEBRUARY
System.out.println(ld3.getMonthValue());//2
System.out.println(ld3.getDayOfWeek());//WEDNESDAY
System.out.println(ld3.getDayOfMonth());//一个月中的第几天 28
LocalDate ld4 = ld3.withYear(2025);//返回一个新对象,
//注意:2025年的2月是不存在29号的,但仍可以修改
System.out.println(ld4);//2025-02-28;
LocalDate ld5 = ld3.withMonth(8);
System.out.println(ld5);//2024-08-28
//判断日期是否相等
System.out.println(ld5.equals(ld3));//false
LocalTime
LocalTime 是 Java 8 中的一个类,用于表示没有日期和时区的时间(即时 分 秒 纳秒)。它是不可变且线程安全的。不想写了,区别不大。
LocalDateTime
年 月 日 时 分 秒 纳 秒
略
不写啦不写啦,随用随查即可。
ZoneId
instant