Java 1.8 LocalDateTime 日期时间
一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 - 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/
截止目前, 星球 内专栏累计输出 66w+ 字,讲解图 2896+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2300+ 小伙伴加入学习 ,欢迎点击围观
1. LocalDateTime 是什么?
LocalDateTime
是 Java 8 中一个不可变的日期-时间对象,它表示了日期(年、月、日)和时间(小时、分钟、秒),但不包含时区。
2. 创建 LocalDateTime 对象
使用 LocalDateTime
的静态方法 now()
,你可以得到表示当前日期和时间的 LocalDateTime
对象:
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
// 获取当前的日期和时间
LocalDateTime now = LocalDateTime.now();
// 打印出当前的日期和时间
System.out.println(now);
}
}
也可以使用 of()
方法创建具有特定日期和时间的 LocalDateTime
对象:
// 创建一个代表 2023 年 7 月 25 日,时间为 14 点 30 分的 LocalDateTime 对象
LocalDateTime dateTime = LocalDateTime.of(2023, 7, 25, 14, 30);
System.out.println(dateTime);
3. 获取日期和时间的信息
你可以通过调用 LocalDateTime
对象的方法获取日期和时间的各个部分,例如:
LocalDateTime now = LocalDateTime.now();
// 获取年份
int year = now.getYear();
// 获取月份
int month = now.getMonthValue();
// 获取日期
int day = now.getDayOfMonth();
// 获取小时
int hour = now.getHour();
// 获取分钟
int minute = now.getMinute();
// 获取秒
int second = now.getSecond();
// 打印结果
System.out.println(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);
4. 修改日期和时间
由于 LocalDateTime
是不可变的,所有修改日期和时间的操作都会返回一个新的 LocalDateTime
对象。例如,你可以使用各种 plus
和 minus
方法来添加或减少日期和时间的各个部分:
LocalDateTime now = LocalDateTime.now();
// 增加一天
LocalDateTime tomorrow = now.plusDays(1);
// 减少一个小时
LocalDateTime anHourAgo = now.minusHours(1);
System.out.println(tomorrow);
System.out.println(anHourAgo);
5. 比较日期和时间
可以使用 isBefore()
和 isAfter()
方法比较两个 LocalDateTime
对象:
LocalDateTime dateTime1 = LocalDateTime.of(2023, 7, 25, 12, 30);
LocalDateTime dateTime2 = LocalDateTime.of(2023, 7, 26, 12, 30);
// 检查 dateTime1 是否在 dateTime2 之前
boolean isBefore = dateTime1.isBefore(dateTime2);
System.out.println(isBefore); // 输出:true
// 检查 dateTime1 是否在 dateTime2 之后
boolean isAfter = dateTime1.isAfter(dateTime2);
System.out.println(isAfter); // 输出:false
6. 总结
Java 8 的 LocalDateTime 类为处理日期和时间提供了强大且灵活的工具。通过使用 LocalDateTime,我们可以更轻松地创建、修改、比较日期和时间,希望这个教程能帮你在代码中找到它的应用场景。