我需要將 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
提交
取消