我需要将 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);

BIG阳
TA贡献1859条经验 获得超6个赞
您可以用作DateTimeFormatter.ISO_LOCAL_DATE_TIME
格式化程序:
LocalDateTime.parse("2019-09-20T12:36:39.359", DateTimeFormatter.ISO_LOCAL_DATE_TIME);

江户川乱折腾
TA贡献1851条经验 获得超5个赞
您将 aString
与 a进行比较Date
,这会说它们不相等。
您甚至不需要编写DateTimeFormatter
.
编写这段代码就足够了:
assertEquals("2019-09-20T12:36:39.359", LocalDateTime.parse("2019-09-20T12:36:39.359").toString());
添加回答
举报
0/150
提交
取消