java - 如何使用 LocalDateTime 解析/格式化日期? (Java 8)

Java 8 添加了一个新的 java.time用于处理日期和时间的 API (JSR 310)。

我有日期和时间作为字符串(例如 "2014-04-08 12:30")。如何获得 LocalDateTime给定字符串的实例?

使用完 LocalDateTime 对象后:如何将 LocalDateTime 实例转换回格式如上所示的字符串?

最佳答案

解析日期和时间

要从字符串创建 LocalDateTime 对象,您可以使用静态 LocalDateTime.parse()方法。它需要一个字符串和一个 DateTimeFormatter作为参数。 DateTimeFormatter 用于指定日期/时间模式。

String str = "1986-04-08 12:30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime dateTime = LocalDateTime.parse(str, formatter);

格式化日期和时间

要从 LocalDateTime 对象创建格式化字符串,您可以使用 format() 方法。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime dateTime = LocalDateTime.of(1986, Month.APRIL, 8, 12, 30);
String formattedDateTime = dateTime.format(formatter); // "1986-04-08 12:30"

请注意,在 DateTimeFormatter 中有一些常用的日期/时间格式预定义为常量。例如:使用 DateTimeFormatter.ISO_DATE_TIME 从上面格式化 LocalDateTime 实例将产生字符串 "1986-04-08T12:30:00".

parse()format() 方法可用于所有与日期/时间相关的对象(例如 LocalDateZonedDateTime )

https://stackoverflow.com/questions/22463062/

相关文章:

java - Java 中如何使用匿名内部类?

java - 如何在 Java 中进行 URL 解码?

java - 是什么导致错误 "No enclosing instance of type Foo

java - 如何在 Java 项目中查找未使用/死代码

java - Java的隐藏特性

java - 在Android应用程序中存储用户设置的最合适方法是什么

java - 如果可以使用 synchronized(this),为什么还要使用 Reentrant

java - 使用 Mockito 模拟静态方法

java - 从字符串中删除所有出现的 char

java - Mockito:试图监视方法正在调用原始方法