📜  Java中的日期格式类(1)

📅  最后修改于: 2023-12-03 15:02:02.632000             🧑  作者: Mango

Java中的日期格式类

Java中内置了许多日期时间相关的类,其中最为常用的是java.time中的日期时间格式类。这些类可以让我们方便地对日期时间进行处理,如比较时间差、格式化日期时间等。

LocalDate

LocalDate是一个不可变的类,用于表示日期(年、月、日)数据。以下是一些常用方法示例:

// 获取当前日期
LocalDate nowDate = LocalDate.now();
System.out.println(nowDate); // 2022-04-11

// 构造指定日期
LocalDate date = LocalDate.of(2022, 4, 11);

// 格式化日期
String formattedDate = date.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"));
System.out.println(formattedDate); // 2022年04月11日

// 常用操作
LocalDate tomorrow = nowDate.plusDays(1);
LocalDate yesterday = nowDate.minusDays(1);
boolean isAfter = tomorrow.isAfter(yesterday); // true
LocalTime

LocalTime是一个不可变的类,用于表示时间(时、分、秒、毫秒)数据。以下是一些常用方法示例:

// 获取当前时间
LocalTime nowTime = LocalTime.now();
System.out.println(nowTime); // 14:23:54.624572

// 构造指定时间
LocalTime time = LocalTime.of(14, 23, 54);

// 格式化时间
String formattedTime = time.format(DateTimeFormatter.ofPattern("HH:mm:ss"));
System.out.println(formattedTime); // 14:23:54

// 常用操作
LocalTime laterTime = nowTime.plusMinutes(30);
LocalTime earlierTime = nowTime.minusHours(1);
long timeDiff = nowTime.until(laterTime, ChronoUnit.MINUTES); // 30
LocalDateTime

LocalDateTime是一个不可变的类,结合了LocalDateLocalTime的日期时间数据。以下是一些常用方法示例:

// 获取当前日期时间
LocalDateTime nowDateTime = LocalDateTime.now();
System.out.println(nowDateTime); // 2022-04-11T14:29:48.920100

// 构造指定日期时间
LocalDateTime dateTime = LocalDateTime.of(2022, 4, 11, 14, 29, 48);

// 格式化日期时间
String formattedDateTime = dateTime.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"));
System.out.println(formattedDateTime); // 2022年04月11日 14:29:48

// 常用操作
LocalDateTime laterDateTime = nowDateTime.plusHours(2);
LocalDateTime earlierDateTime = nowDateTime.minusDays(1);
Duration timeDiff = Duration.between(nowDateTime, laterDateTime); // PT2H
ZonedDateTime

ZonedDateTime是一个可变的类,结合了LocalDateTimeZoneId的日期时间数据,同时包含了时区信息。以下是一些常用方法示例:

// 获取当前日期时间
ZonedDateTime nowZonedDateTime = ZonedDateTime.now();
System.out.println(nowZonedDateTime); // 2022-04-11T14:37:13.956037+08:00[Asia/Shanghai]

// 构造指定日期时间
ZonedDateTime zonedDateTime = ZonedDateTime.of(2022, 4, 11, 14, 37, 13, 0, ZoneId.of("Asia/Shanghai"));

// 格式化日期时间
String formattedZonedDateTime = zonedDateTime.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss z"));
System.out.println(formattedZonedDateTime); // 2022年04月11日 14:37:13 CST

// 常用操作
ZonedDateTime laterZonedDateTime = nowZonedDateTime.plusHours(2);
ZonedDateTime earlierZonedDateTime = nowZonedDateTime.minusDays(1);
ZoneId zoneId = nowZonedDateTime.getZone();
Conclusion

java.time中的日期时间格式类为我们提供了方便、灵活的日期时间处理工具,应用广泛。熟练掌握这些类的使用可以让我们高效地编写出正确的日期时间相关程序。