Ezio's Blog
Posts Categories Tags Music Mood About
Ezio's Blog· Light
☰ Menu
Posts Categories Tags Music Mood About
Expand all Back to top Go to bottom

Java8-LocalDateTime

Author: Ezio Date: April 13, 2021  10:03:57 Category: Java

在 Java8 中引入了新的日期类 LocalDateTime ,其主要原因是 Java.util.Date 和 SimpleDateFormatter 都不是线程安全的,而LocalDate和LocalTime和最基本的String一样,是 final 类型,不但线程安全,且不能修改。日期和时间被明确划分为 LocalDate 和 LocalTime ,LocalDate 无法包含时间,LocalTime 无法包含日期,LocalDateTime 才能同时包含日期和时间。


LocalTime 只含时分秒的时间对象

  • 获取当前时间 now()
1
2
3
//获取当前时间 14:40:29.899
LocalTime now = LocalTime.now();
System.out.println("当前时间 = " + now);
  • 获取指定时间 of()
1
2
3
//获取指定时间 12:30:45
LocalTime of = LocalTime.of(12, 30, 45);
System.out.println("指定时间 = " + of);

LocalDate 只含年月日的日期对象

  • 获取当前日期 now()
1
2
3
//获取当前日期 2022-04-11
LocalDate localDateNow = LocalDate.now();
System.out.println("当前日期 = " + localDateNow);
  • 获取指定日期 of()
1
2
3
//获取指定日期 2021-11-12
LocalDate localDate = LocalDate.of(2021, 11, 12);
System.out.println("指定日期 = " + localDate);

LocalDateTime 同时含有年月日时分秒的日期对象

  • 获取当前时间 now()
1
2
3
//获取当前日期时间 2022-04-11T14:40:29.900
LocalDateTime now1 = LocalDateTime.now();
System.out.println("当前日期时间 = " + now1);
  • 获取指定时间 of()
1
2
3
//获取指定日期时间 2021-11-12T12:30:45
LocalDateTime of1 = LocalDateTime.of(2021, 11, 12, 12, 30, 45);
System.out.println("指定日期时间 = " + of1);
  • 时间格式化 DateTimeFormatter
1
2
3
4
5
6
7
//时间日期格式化 2022-04-11 14:40:29
String format1 = now1.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
String format2 = now1.format(DateTimeFormatter.ISO_DATE);
String format3 = now1.format(DateTimeFormatter.BASIC_ISO_DATE);
System.out.println("格式化后时间日期为 = " + format1); //2022-04-11 14:40:29
System.out.println("格式化后时间日期为 = " + format2); //2022-04-11
System.out.println("格式化后时间日期为 = " + format3); //20220411
  • 获取具体的时间
1
2
3
4
5
6
7
8
9
10
11
LocalDateTime localDateTime = LocalDateTime.now();  
System.out.println("当前时间: " + localDateTime);
System.out.println("年: " + localDateTime.getYear());
System.out.println("月: " + localDateTime.getMonth().getValue());
System.out.println("日: " + localDateTime.getDayOfMonth());
System.out.println("时: " + localDateTime.getHour());
System.out.println("分: " + localDateTime.getMinute());
System.out.println("秒: " + localDateTime.getSecond());
System.out.println("减少一年 = " + localDateTime.minusYears(1)); // 减少一年 2018-12-12 08:12:12
System.out.println("增加一年 = " + localDateTime.plusDays(1)); // 增加一天 2018-12-13 08:12:12
System.out.println("直接修改年份 = " + localDateTime.withYear(2020)); // 直接修改年份 2020-12-13 08:12:12
  • 时间反解析 parse( )
1
2
LocalDateTime localDateTime1 = LocalDateTime.parse("2022-04-11 14:53:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));  
System.out.println("反解析 = " + localDateTime1);
  • Date To LocalDateTime
1
LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();

Author: Ezio

Permalink: https://ezioy.cn/2021/04/13/Java8-LocalDateTime/

License: Copyright (c) 2019 CC-BY-NC-4.0 LICENSE

Slogan: Nothing is true,Everything is permitted

Tag(s): # Java
back · home
事务的四大特性 RabbitMQ
Ezio © 2019 - 2026 | Powered by Hexo & Chic | 访客数量:   浏览次数: | 渝公网安备50011302222043 | 渝ICP备2023013933号-1