Java8 新特性LocalDateTime API 的详细使用

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是不可变对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Run,boy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值