java8 新特性之日期时间处理 LocatDate、LocalTime、LocalDateTime、ZonedDateTime、DateTimeFormatter
一、LocalDate、LocalTime、LocalDateTime 和常用API
1、LocalDate
public void test01(){ //1.创建指定的日期 LocalDate date1 = LocalDate.of(2021,05,06); System.out .println( "date1 = "+date1); //2.得到当前的日期 LocalDate now = LocalDate .now(); System.out.println("now = "+now); // 3.根据LocalDate对象获取对应的日期信息 System.out.println("年:" + now.getYear()); System.out.println("月:" + now.getMonth().getValue()); System.out.println("日:" + now.getDayOfMonth()); System.out.println("星期:" + now.getDayOfWeek().getValue()); }
执行结果:
date1 = 2021-05-06 now = 2023-02-18 年:2023 月:2 日:18 星期:6
2、LocalTime
public void test02(){ //1、得到指定时间 LocalTime time = LocalTime.of(5, 26, 33, 2323); System.out.println("指定时间:"+time); //2、获取当前的时间 LocalTime now = LocalTime.now(); System.out.println("当前时间:"+now); //3、获取时间信息 System.out.println("时"+now.getHour()); System.out.println("分"+now.getMinute()); System.out.println("秒"+now.getSecond()); System.out.println("纳秒"+now.getNano()); }
执行结果
指定时间:05:26:33.000002323 当前时间:17:12:48.909 时17 分12 秒48 纳秒909000000
3、LocalDateTimepublic void test03(){
//获取指定日期时间 LocalDateTime dateTime = LocalDateTime.of(2023, 01, 01, 12, 12, 33, 1213); System.out.println("指定日期时间:"+dateTime); //获取当前的日期时间 LocalDateTime now = LocalDateTime.now(); System.out.println("当前日期时间:"+now); //获取日期时间信息 System.out.println("年:" + now.getYear()); System.out.println("月:" + now.getMonth().getValue()); System.out.println("日:" + now.getDayOfMonth()); System.out.println("星期:" + now.getDayOfWeek().getValue()); System.out.println("时"+now.getHour()); System.out.println("分"+now.getMinute()); System.out.println("秒"+now.getSecond()); System.out.println("纳秒"+now.getNano());
}
执行结果
指定日期时间:2023-01-01T12:12:33.000001213 当前日期时间:2023-02-18T17:14:30.547 年:2023 月:2 日:18 星期:6 时17 分14 秒30 纳秒547000000
4、日期的加减和比较(isBefore、isAfter、isEqual、compareTo)
省略......
二、DateTimeFormatter日期时间格式化
public void test01(){ LocalDateTime now = LocalDateTime.now(); // format 日期类型转换为日期字符串(使用系统默认格式) DateTimeFormatter isoLocalDateTime = DateTimeFormatter.ISO_LOCAL_DATE_TIME; String format = now.format(isoLocalDateTime); System.out.println(format); // format 日期类型转换为日期字符串(使用指定格式) DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String format1 = now.format(formatter); System.out.println(format1); // parse 日期字符串转换为日期类型(使用默认格式) LocalDateTime parse2 = LocalDateTime.parse("2023-02-18T17:25:48.267", DateTimeFormatter.ISO_LOCAL_DATE_TIME); System.out.println(parse2); // parse 日期字符串转换为日期类型(使用指定格式) LocalDateTime parse = LocalDateTime.parse("1995-04-05 22:33:22", formatter); System.out.println(parse); }
执行结果:
2023-02-18T17:30:03.752 2023-02-18 17:30:03 2023-02-18T17:25:48.267 1995-04-05T22:33:22
三、ZonedDate、ZonedTime、zonedDateTime
LocalDate、LocalTime、LocalDateTime是不带时区的。 带时区的日期时间类分别为: ZonedDate、ZonedTime、zonedDateTime。其中每个时区都对应着ID,
ID的格式为“区域/城市”。例如︰ Asia/Shanghai等。
摘自:https://blog.csdn.net/weixin_41979002/article/details/129101910