为了账号安全,请及时绑定邮箱和手机立即绑定

未知模式字母:T - 将模式 T 的字符串日期解析为 LocalDateTime

未知模式字母:T - 将模式 T 的字符串日期解析为 LocalDateTime

红颜莎娜 2023-09-13 16:58:27
我需要将 String 中的以下日期格式解析为 Java LocalDateTime。所以我将日期作为字符串获取,如下所示:2019-09-20T12:36:39.359我有以下单元测试:@Testpublic void testDateTime() {    assertEquals(SomeObject.getLocalDate(), LocalDateTime.parse(“2019-09-20T12:36:39.359”, DateTimeFormatter.ofPattern("yyyy-MM-ddThh:mm:ss.SSS")));}单元测试失败,出现异常:java.lang.IllegalArgumentException: Unknown pattern letter: T    at java.time.format.DateTimeFormatterBuilder.parsePattern(DateTimeFormatterBuilder.java:1661)    at java.time.format.DateTimeFormatterBuilder.appendPattern(DateTimeFormatterBuilder.java:1570)    at java.time.format.DateTimeFormatter.ofPattern(DateTimeFormatter.java:536)如何正确解析这种格式的日期LocalDateTime?
查看完整描述

3 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

您还可以使用 DateTimeFormatter.ofPattern如下


    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.getDefault());


    String dateStr = "2019-09-20T12:36:39.359";


    LocalDateTime date = LocalDateTime.parse(dateStr, dtf);


查看完整回答
反对 回复 2023-09-13
?
BIG阳

TA贡献1859条经验 获得超6个赞

您可以用作DateTimeFormatter.ISO_LOCAL_DATE_TIME格式化程序:

LocalDateTime.parse("2019-09-20T12:36:39.359", DateTimeFormatter.ISO_LOCAL_DATE_TIME);



查看完整回答
反对 回复 2023-09-13
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

您将 aString与 a进行比较Date,这会说它们不相等。

您甚至不需要编写DateTimeFormatter.

编写这段代码就足够了:

assertEquals("2019-09-20T12:36:39.359", LocalDateTime.parse("2019-09-20T12:36:39.359").toString());



查看完整回答
反对 回复 2023-09-13
  • 3 回答
  • 0 关注
  • 73 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信