📅  最后修改于: 2023-12-03 15:16:24.182000             🧑  作者: Mango
LocalDateTime
是Java 8中的日期时间API的一部分,它是一个日期时间对象,可以表示年、月、日、时、分、秒和纳秒。 format()
是 LocalDateTime
类的一个方法,用于将 LocalDateTime
对象格式化为指定的字符串。
public String format(DateTimeFormatter formatter)
formatter
:日期时间格式化器。LocalDateTime dateTime = LocalDateTime.of(2020, 8, 21, 11, 0, 0);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = dateTime.format(formatter);
System.out.println(formattedDateTime); // 2020-08-21 11:00:00
日期时间格式化模式由一系列预定义的字母和自定义的字符组成。下面列出了常用的日期时间格式模式(详细参见 Java 8官方文档):
| 模式 | 描述 | | --------- | ------------------------------------------ | | yyyy | 年份(4位数) | | MM | 月份(如:06) | | dd | 日期(如:15) | | HH | 小时(24小时制,如:22) | | hh | 小时(12小时制,如:10) | | mm | 分钟(如:30) | | ss | 秒数(如:55) | | SSS | 毫秒数(如:678) | | a | 上午/下午标识符(如:AM/PM) | | EEEE | 星期几(如:星期五) | | MMMM | 月份全称(如:六月) | | MMM | 月份简称(如:6月) | | D | 当天是当年的第几天(如:180) | | w | 当天是当周的第几天(如:5,其中周日为第一天) | | W | 当年的第几周(如:25) | | Z/ZZ/ZZZ | 时区 |
除了上述预定义模式外,还可以自定义日期时间格式模式。例如,要输出格式为 2020-08-21T11:00:00
的日期字符串,可以使用以下代码:
LocalDateTime dateTime = LocalDateTime.of(2020, 8, 21, 11, 0, 0);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
String formattedDateTime = dateTime.format(formatter);
System.out.println(formattedDateTime); // 2020-08-21T11:00:00
format()
方法在格式化 LocalDateTime
对象时会产生 DateTimeException
异常,如果格式化工作失败。常见的异常原因有无效的格式器模式和无效的日期时间。format()
方法在多线程环境下是线程不安全的,应该避免在并发场景中使用。Java 8中的日期时间API涵盖了多种函数,其中一些重要的函数如下:
LocalDate.parse()
:解析字符串为日期。LocalDateTime.now()
:获取当前日期时间。LocalDateTime.plus()
:添加年、月、日、小时、分钟或秒到现有日期时间。LocalDateTime.minus()
:从现有日期时间中减去年、月、日、小时、分钟或秒。LocalDateTime format()
方法是Java 8中的日期时间API的一部分。它可以将 LocalDateTime
对象格式化为指定的字符串。在使用此方法时,请注意参数和格式化模式的正确性,并避免在线程安全限制下使用。