LocalDateTime 相关方法

tech2025-08-27  22

文章目录

1、获取日期/时间/日期时间2、获取年月日时分秒3、给定数值生成日期时间4、格式化(日期时间->字符串)5、解析(字符串->日期时间)6、设定具体值7、日期时间的加减8、小测试(日期->日期时间)

注意:本文中相关变量与对应的类型关系为

datexxx -> LocalDatetimexxx -> LocalTimedateTimexxx -> LocalDateTime

1、获取日期/时间/日期时间

// 获取当前日期 LocalDate date1 = LocalDate.now(); // 2020-09-04 // 获取当前时间 LocalTime time1 = LocalTime.now(); // 10:57:10.594 // 获取当前日期时间 LocalDateTime dateTime1 = LocalDateTime.now(); // 2020-09-04T10:57:10.594 // 从 LocalDateTime 获取 LocalDate LocalDate dateTime1WithDate = dateTime1.toLocalDate(); // 2020-09-04 // LocalDateTime 获取 LocalTime LocalTime dateTime1WithTime = dateTime1.toLocalTime(); // 10:57:10.594

2、获取年月日时分秒

// 年 int year = dateTime1.getYear(); // 2020 // 月(月的名称,例如:September) Month month = dateTime1.getMonth(); // September // 月(月的序号,例如:9) int monthValue = dateTime1.getMonthValue(); // 9 // 日 int dayOfMonth = dateTime1.getDayOfMonth(); // 4 // 时 int hour = dateTime1.getHour(); // 10 // 分 int minute = dateTime1.getMinute(); // 57 // 秒 int second = dateTime1.getSecond(); // 10 // 2020年9月(SEPTEMBER)4日 10时57分10秒 // LocalDate 和 LocalTime 也可以使用如上方法

3、给定数值生成日期时间

// 生成日期 LocalDate date2 = LocalDate.of(2020, 9, 3); // 2020-09-03 // 生成时间 LocalTime time2 = LocalTime.of(22, 30, 59); // 22:30:59 // 生成日期时间(月份格式,形如:9) LocalDateTime dateTime2WithMonth = LocalDateTime.of(2020, 8, 1, 16, 29, 3); // 2020-08-01T16:29:03 // 生成日期时间(月份格式,形如:APRIL) LocalDateTime dateTime2WithMonthValue = LocalDateTime.of(2020, Month.APRIL, 6, 19, 23, 2); // 2020-04-06T19:23:02 // 生成日期时间(根据 LocalDate 和 LocalTime) LocalDateTime dateTimeWithdt = LocalDateTime.of(date2, time2); // 2020-09-03T22:30:59

4、格式化(日期时间->字符串)

// 格式化日期 DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); String dateStr = dateFormatter.format(LocalDate.now()); // 2020/09/04 // 格式化时间 DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss"); String timeStr = timeFormatter.format(LocalTime.now()); // 10:57:10 // 格式化日期时间 DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); String dateTimeStr = dateTimeFormatter.format(LocalDateTime.now()); // 2020/09/04 10:57:10

5、解析(字符串->日期时间)

// 使用默认解析格式(输入要符合格式) LocalTime time3 = LocalTime.parse("20:30:55"); // 20:30:55 LocalDate date3 = LocalDate.parse("2020-10-03"); // 2020-10-03 LocalDateTime dateTime3 = LocalDateTime.parse("2020-03-04T13:45:55"); // 2020-03-04T13:45:55 // 自定义解析格式 LocalDate date4 = LocalDate.parse("2020/03/04", DateTimeFormatter.ofPattern("yyyy/MM/dd")); // 2020-03-04 LocalTime time4 = LocalTime.parse("20/01/23", DateTimeFormatter.ofPattern("HH/mm/ss")); // 20:01:23 LocalDateTime dateTime4 = LocalDateTime.parse("2020/05/06 23/34/45", DateTimeFormatter.ofPattern("yyyy/MM/dd HH/mm/ss")); // 2020-05-06T23:34:45

6、设定具体值

LocalDate date5 = date4.withYear(1999).withMonth(9).withDayOfMonth(25); // 1999-09-25 LocalTime time5 = time4.withHour(1).withMinute(2).withSecond(3); // 01:02:03 LocalDateTime dateTime5 = dateTime4.withYear(1998).withMonth(3).withDayOfMonth(31) .withHour(13).withMinute(10).withSecond(25); // 1998-03-31T13:10:25

7、日期时间的加减

// 加 LocalDate date6 = date5.plusYears(1).plusMonths(1).plusDays(1); // 2000-10-26 LocalTime time6 = time5.plusHours(1).plusMinutes(1).plusSeconds(1); // 02:03:04 LocalDateTime dateTime6 = dateTime5.plusYears(1).plusMonths(1).plusDays(1) .plusHours(1).plusMinutes(1).plusSeconds(1); // 1999-05-01T14:11:26 // 减 LocalDate date7 = date6.minusYears(1).minusMonths(1).minusDays(1); // 1999-09-25 LocalTime time7 = time6.minusHours(1).minusMinutes(1).minusSeconds(1); // 01:02:03 LocalDateTime dateTime7 = dateTime6.minusYears(1).minusMonths(1).minusDays(1). minusHours(1).minusMinutes(1).minusSeconds(1); // 1998-03-31T13:10:25

8、小测试(日期->日期时间)

/* * 八、相关功能:查询某一个日期(不含时间)内的数据 * 日期 - > 日期时间 * * 当用户选择某一天的数据,如:2020/09/04 - 2020/09/05 * 数据库日期格式为"yyyy/MM/dd HH:mm:ss",所以将 日期 转换为 日期时间 时,会变为:2020/09/04 00:00:00 - 2020/09/05 00:00:00 * 导致无法查询截止日期那一天的数据,所以需要对日期进行特殊处理 * 将截至日期转换为日期时间,然后(+1 day)(-1 second) * */ LocalDate localDate = LocalDate.parse("2020/09/04", DateTimeFormatter.ofPattern("yyyy/MM/dd")); LocalTime localTime = LocalTime.of(0, 0, 0); LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime); LocalDateTime localDateTime1 = localDateTime.plusDays(1).minusSeconds(1); // 处理完毕,截止日期为:2020-09-04T23:59:59
最新回复(0)