文章目录
Java 8 引入了一个新的日期和时间API,其中包括了LocalDateTime类。
LocalDateTime类表示了日期和时间,但不包含时区信息。下面是LocalDateTime类的基本使用方法:
一、创建LocalDateTime对象:
你可以使用of方法来创建一个指定的日期和时间的LocalDateTime对象。例如,下面的代码创建了一个表示2019年10月31日23点59分59秒的LocalDateTime对象:
LocalDateTime dateTime = LocalDateTime.of(2019, 10, 31, 23, 59, 59);
二 、获取日期和时间信息:
你可以使用getYear、getMonth、getDayOfMonth等方法来获取LocalDateTime对象中的日期和时间信息。例如,下面的代码分别获取了LocalDateTime对象中的年、月、日、小时、分钟和秒:
int year = dateTime.getYear();
int month = dateTime.getMonthValue();
int day = dateTime.getDayOfMonth();
int hour = dateTime.getHour();
int minute = dateTime.getMinute();
int second = dateTime.getSecond();
三、修改日期和时间:
你可以使用with方法来修改LocalDateTime对象的日期和时间。例如,下面的代码将LocalDateTime对象的月份修改为11,并将小时修改为8:
LocalDateTime modifiedDateTime = dateTime.withMonth(11).withHour(8);
四、增加或减少日期和时间:
你可以使用plus和minus方法来增加或减少LocalDateTime对象的日期和时间。例如,下面的代码将LocalDateTime对象的日期增加一天,并将小时减少3小时:
LocalDateTime newDateTime = dateTime.plusDays(1).minusHours(3);
五、格式化日期和时间:
你可以使用DateTimeFormatter类来格式化LocalDateTime对象的日期和时间。例如,下面的代码将LocalDateTime对象格式化为"yyyy-MM-dd HH:mm:ss"的字符串:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = dateTime.format(formatter);
这些是LocalDateTime类的一些基本使用方法。通过这些方法,你可以轻松地处理日期和时间。
六、LocalDateTime和Date互相转换:
1. LocalDateTime转换为Date:
可以使用toInstant()方法将LocalDateTime转换为Instant对象,再使用Date.from()方法将Instant对象转换为Date对象。
示例代码如下:
LocalDateTime localDateTime = LocalDateTime.now();
Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
2. Date转换为LocalDateTime:
可以使用toInstant()方法将Date对象转换为Instant对象,再使用atZone()方法将Instant对象转换为指定时区的ZonedDateTime对象,最后使用toLocalDateTime()方法将ZonedDateTime对象转换为LocalDateTime对象。
示例代码如下:
Date date = new Date();
Instant instant = date.toInstant();
LocalDateTime localDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
需要注意的是,LocalDateTime和Date的精度不同,LocalDateTime包含纳秒级的精确度,而Date只能精确到毫秒级。在转换时可能会有精度损失。另外,Date是可变对象,而LocalDateTime是不可变对象。