簡體   English   中英

如何在 java 中將任何日期時間格式解析為 yyyy-MM-dd

[英]How to Parse Any Datetime format to yyyy-MM-dd in java

我有一個動態填充的日期字段,我需要格式yyyy-MM-dd的字段

對於格式為1994-08-01 14:37:44的輸入日期,這是一個例外

java.time.format.DateTimeParseException: Text '1994-08-01 14:37:44' could not be parsed, unparsed text found at index 10

這是我嘗試過的許多其他方法之一LocalDateTime.parse("1994-08-01 14:37:44",DateTimeFormatter.ofPattern(yyyy-MM-dd));

有沒有辦法將所有日期/日期時間轉換為 yyyy-MM-dd 格式?

請幫忙

謝謝

像這樣試試。 您可以提取LocalDate部分。

LocalDate ldt = LocalDateTime.parse("1994-08-01 14:37:44",
                DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        
System.out.println(ldt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));

印刷

1994-08-01

您有一個日期和時間組件,但您只使用日期格式將其解析為LocalDateTime值,這將失敗,因為LocalDateTime需要時間組件才能工作

從解析全文開始

String input = "1994-08-01 14:37:44";
LocalDateTime ldt = LocalDateTime.parse(input, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

然后使用DateTimeFormatter以您想要的方式對其進行格式化

String formatted = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(ldt);
System.out.println(formatted);

哪個打印

1994-08-01

根據您的需要,您還可以將LocalDateTime值轉換為LocalDate並對其進行格式化,結果相同,但您可能需要LocalDate來處理其他事情,誰知道...

String formatted = ldt.toLocalDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM