LocalDate和LocalDateTime是Java 8引入的不可变、线程安全的日期时间类,分别表示无时区的日期和日期时间,支持创建、解析、加减、格式化及与其他类型互转操作,结合DateTimeFormatter可处理自定义格式,推荐用于新项目。

Java 8 引入了新的日期时间 API,位于 java.time 包中,其中 LocalDate 和 LocalDateTime 是最常用的类。它们是不可变的、线程安全的,使用起来更加直观和方便。
LocalDate 的常用操作
LocalDate 表示一个不带时区的日期,比如 2025-04-05。
• 创建当前日期:
LocalDate today = LocalDate.now();
• 指定年月日创建:
LocalDate date = LocalDate.of(2025, 4, 5);
立即学习“Java免费学习笔记(深入)”;
• 解析字符串日期:
LocalDate parsed = LocalDate.parse(“2025-04-05”);
• 获取年、月、日:
int year = date.getYear();
int month = date.getMonthValue();
int day = date.getDayOfMonth();
• 日期加减操作:
LocalDate tomorrow = today.plusDays(1);
LocalDate nextMonth = today.plusMonths(1);
LocalDate lastYear = today.minusYears(1);
• 判断日期前后:
boolean isAfter = today.isAfter(parsed);
boolean isBefore = today.isBefore(parsed);
LocalDateTime 的常用操作
LocalDateTime 表示不带时区的日期和时间,精确到纳秒,比如 2025-04-05T10:30:45。
• 创建当前日期时间:
LocalDateTime now = LocalDateTime.now();
• 指定年月日时分秒创建:
LocalDateTime dt = LocalDateTime.of(2025, 4, 5, 10, 30, 0);
Shrink.media
Shrink.media是当今市场上最快、最直观、最智能的图像文件缩减工具
123 查看详情
• 从 LocalDate 转换:
LocalDateTime fromLocalDate = today.atTime(12, 0);
• 解析字符串(ISO 格式):
LocalDateTime parsedDT = LocalDateTime.parse(“2025-04-05T14:20:30”);
• 提取日期或时间部分:
LocalDate datePart = now.toLocalDate();
LocalTime timePart = now.toLocalTime();
• 时间加减操作:
LocalDateTime later = now.plusHours(3);
LocalDateTime earlier = now.minusMinutes(15);
LocalDateTime nextWeek = now.plusWeeks(1);
格式化与解析自定义格式
默认的 parse 和 toString 使用 ISO 标准格式。如果需要处理如 “2025/04/05” 或 “2025-04-05 10:30” 这样的格式,需使用 DateTimeFormatter。
• 定义格式并解析:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(“yyyy/MM/dd”);
LocalDate customDate = LocalDate.parse(“2025/04/05”, formatter);
• 格式化输出:
String formatted = now.format(DateTimeFormatter.ofPattern(“yyyy-MM-dd HH:mm”)); // 输出:2025-04-05 10:30
与其他类型互转
• LocalDateTime 转 Instant(需指定时区):
Instant instant = now.atZone(ZoneId.systemDefault()).toInstant();
• Instant 转 LocalDateTime:
LocalDateTime fromInstant = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
• 与旧版 Date 互转:
Date date = Date.from(instant);
LocalDateTime back = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
基本上就这些。LocalDate 和 LocalDateTime 简洁易用,配合 DateTimeFormatter 可满足大多数场景需求,推荐在新项目中优先使用。
以上就是java怎么处理日期和时间 操作LocalDate与LocalDateTime的常用方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/969748.html
微信扫一扫
支付宝扫一扫