Java 1.8推荐使用java.time包中的日期和时间类来处理日期和时间。这些类提供了更简单、更清晰、更易于使用的API,以及更好的线程安全性和可变性管理。
在java.time包中,以下是一些常用的日期和时间类:
- LocalDate:表示仅有日期部分的日期时间。
- LocalTime:表示仅有时间部分的日期时间。
- LocalDateTime:表示既有日期又有时间的日期时间。
- ZonedDateTime:表示带有时区的日期时间。
- Duration:表示时间间隔,例如两个时间点之间的差异。
- Period:表示日期间隔,例如两个日期之间的差异。
如果您需要与旧代码交互或需要使用旧的日期和时间类,则可以使用java.util.Date和java.util.Calendar类,但是要注意它们存在线程安全问题,而且API设计不够优雅。因此,最好尽可能使用新的日期和时间类。
以下是一个示例代码,演示如何使用LocalDate和LocalDateTime类获取并格式化当前日期和时间:
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
// 获取当前日期和时间
LocalDateTime currentDateTime = LocalDateTime.now();
// 格式化日期和时间
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = currentDateTime.format(formatter);
// 输出日期和时间
System.out.println("Current date and time: " + formattedDateTime);
// 获取当前日期
LocalDate currentDate = LocalDate.now();
// 格式化日期
String formattedDate = currentDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
// 输出日期
System.out.println("Current date: " + formattedDate);
这将在控制台上打印出当前日期和时间的格式化字符串,以及当前日期的格式化字符串。请注意,DateTimeFormatter类用于将日期和时间格式化为指定的字符串表示形式。