Java中如何对日期操作呢?
下文笔者讲述
1、生成指定字符串格式的时间 2、Date类型转LocalDate类型 3、LocalDate类型基本操作 4、格式化日期格式 5、String 与 LocalDateTime 之间的转换 6、生成指定时间段内的时间列表
转换为指定格式字符串
String dateTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
2、Date类型转LocalDate类型
Date date = new Date(); Instant instant = date.toInstant(); ZoneId zoneId = ZoneId.systemDefault(); LocalDate localDate = instant.atZone(zoneId).toLocalDate();
3、LocalDate类型基本操作
// 创建LocalDate LocalDate now = LocalDate.now(); // 2025-06-19 // 天数+1 LocalDate new_now = now.plusDays(1); // 2025-06-20
4、格式化日期格式
// JDK1.8 之前的日期格式化 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String now = dateFormat.format(new Date()); System.out.println(now); // 2025-06-20 00:00:00 // JDK1.8 之后的日期格式化 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime now = LocalDateTime.now(); System.out.println(now.format(formatter)); // 2025-06-20 00:00:00
5、String与LocalDateTime之间转换
// String 转 LocalDateTime DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String now = "2025-06-25 00:00:00"; LocalDateTime parse = LocalDateTime.parse(now, formatter); System.out.println(parse); // 2025-06-25T00:00 // LocalDateTime 转 String DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime now = LocalDateTime.now(); String format = formatter.format(now); System.out.println(format); // 2025-06-25 10:57:50
6、生成指定时间段内的时间列表
生成当前月份第一天到现在的时间列表 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate startDate = LocalDate.parse("2025-08-01", formatter); LocalDate endtDate = LocalDate.parse("2025-08-15", formatter); // 创建一个列表来保存月份中的每一天 list<LocalDate> daysInMonth = new ArrayList<>(); // 循环添加每一天到列表中 for (LocalDate day = startDate; !day.isAfter(endtDate); day = day.plusDays(1)) { daysInMonth.add(day); } // 打印结果 for (LocalDate date : daysInMonth) { System.out.println(date); }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。