1、转换操作
代码语言:text复制// LocalDateTime 转字符串
String format = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS[SSS]"));
// 字符串转 LocalDateTime
LocalDateTime parse = LocalDateTime.parse("2021-01-02 10:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
// Date 转 LocalDateTime
LocalDateTime localDateTime = new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
// LocalDateTime 转 Date
Date from = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant());
// 获取默认时区
ZoneOffset currentZone = OffsetDateTime.now().getOffset();
ZoneId newZone = ZoneId.of("Australia/Darwin");
// 转化成其他时区的时间
LocalDateTime localDateTime = LocalDateTime.now().atZone(currentZone).withZoneSameInstant(newZone).toLocalDateTime();
2、获取操作
代码语言:less复制// 获取当前是几号
System.out.println(LocalDateTime.now().getDayOfMonth());
// 获取星期几 返回是一个枚举类型
System.out.println(LocalDateTime.now().getDayOfWeek());
// 获取今天的小时部分
System.out.println(LocalDateTime.now().getHour());
3、差值操作
代码语言:less复制 Duration between = Duration.between(LocalDateTime.now(), LocalDateTime.now().plusDays(4));
// 计算两个时间之间的毫秒数
System.out.println(between.toMillis());
// 将当前时间相加 4 天
System.out.println(LocalDateTime.now().plusDays(4));
// 将当前时间相减 4 天
System.out.println(LocalDateTime.now().minusDays(4));
// 将当前时间与 4 天后的时间比较,判断当前时间是否在 4 天后,显而易见是返回 false 的
System.out.println(LocalDateTime.now().isAfter(LocalDateTime.now().plusDays(4)));
// 如果年月日都相同,比较结果返回的是 -1 0 1
// 如果年相同(日不同 | 日相同)则返回的是月份之间的差值
// 如果月份相同则返回的是日之间的差值
// 如果年不同则返回的是年之前的差值
System.out.println(LocalDateTime.now().compareTo(LocalDateTime.now().plusMonths(25)));
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!