场景:
SimpleDateFormat 的format和parse方法是线程不安全的
LocalDateTime、LocalDate、LocalTime
创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.now();
LocalDate localDate1 = LocalDate.of(2020, 5, 12);
LocalTime localTime1 = LocalTime.of(9, 15, 0);
LocalDateTime localDateTime1 = LocalDateTime.of(2020, 5, 12,13,14,0);
LocalDateTime localDateTime2 = LocalDateTime.of(localDate1,localTime1);
|
格式转换
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| LocalDateTime localDateTime = LocalDateTime.now();
String str1 = localDateTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME); System.out.println(str1);
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss"); String str2 = dateTimeFormatter.format(localDateTime); System.out.println(str2);
String str = "2020.05.12 13:14:00"; LocalDateTime dateTime = LocalDateTime.parse(str, dateTimeFormatter); System.out.println(dateTime);
|
获取年月日时分秒
1 2 3 4 5 6 7 8
| int year = dateTime.getYear(); Month month = dateTime.getMonth(); int day = dateTime.getDayOfMonth(); int hour = dateTime.getHour(); int minute = dateTime.getMinute(); int second = dateTime.getSecond(); System.out.println("年:"+year+" 月:"+month+" 日:"+day+" 时:"+hour+" 分:"+minute+" 秒:"+second);
|
LocalDateTime转Date
1 2
| LocalDateTime localDateTime = LocalDateTime.now(); Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
Date转LocalDateTime
1 2 3 4
| Date date = new Date(); LocalDateTime ldt = date.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDateTime();
|