LocalDateTime 解析抛出 "java.lang.IllegalArgumentException: Unknown pattern letter: T"

LocalDateTime parsing throws "java.lang.IllegalArgumentException: Unknown pattern letter: T"

下面的作品:

LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
LocalDateTime.now().plusDays(1).format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)

但是下面的项目不起作用。

LocalDateTime.now().format(DateTimeFormatter.ofPattern("YYYY-MM-DDTHH:mm:ss"))
LocalDateTime.parse("2019-11-14T16:48:48.288", DateTimeFormatter.ofPattern("YYYY-MM-DDTHH:mm:ss"));

LocalDateTime.now() 给我的日期是 2019-11-13T17:12:47.494。 我已经尝试解析它并在网上进行了很多修复,但没有人能帮助我理解为什么解析会抛出异常以及如何解决这个问题。

您需要在任何文字周围添加单引号 ''

LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"));
LocalDateTime.parse("2019-11-14T16:48:48.288", DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS"));

还有:

  • 年份使用 yyyy
  • 使用 dd 作为日期,而不是 DD 作为日期。
  • 第二个分数使用 SSS
  • 有关详细信息,请参阅 DateTimeFormatter Javadoc