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-18LocalDate 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-28System.out.println(ld3.getYear());//年 2024System.out.println(ld3.getMonth());//月 FEBRUARYSystem.out.println(ld3.getMonthValue());//2System.out.println(ld3.getDayOfWeek());//WEDNESDAYSystem.out.println(ld3.getDayOfMonth());//一个月中的第几天 28LocalDate 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