我有以下格式的日期:
lastUpdatedDate = "12/14/2021 09:15:17";
我使用以下代碼/格式將日期轉換為 yyyy-MM-dd hh:mm:ss 格式:
SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date lastUpdatedDateFormatted = dt.parse(lastUpdatedDate);
但它給了我以下錯誤:
java.text.ParseException: Unparseable date: "12/14/2021 09:15:17"
輸出應為:2021-12-14 09:15:17
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
將格式更改為
SimpleDateFormat dt = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date lastUpdatedDateFormatted = dt.parse(lastUpdatedDate);
System.out.println(lastUpdatedDateFormatted);
然后它應該能夠決議日期。
uj5u.com熱心網友回復:
由于您希望以yyyy-MM-dd HH:mm:ss格式顯示或輸出日期,您應該先決議日期,然后將日期格式化為所需格式。
try {
String lastUpdatedDate = "12/14/2021 09:15:17";
Date lastDate = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse(lastUpdatedDate);
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(lastDate));
} catch (ParseException e) {
e.printStackTrace();
}
uj5u.com熱心網友回復:
您的格式模式與您的輸入字串不匹配。
而且您正在使用可怕的日期時間類,這些類在幾年前被JSR 310 中定義的現代java.time類所取代。
時間
現代解決方案使用java.time類。
您的輸入缺少時區指示或與 UTC 的偏移量,因此請決議為LocalDateTime物件。
LocalDateTime ldt =
LocalDateTime
.parse(
"12/14/2021 09:15:17" ,
DateTimeFormatter.ofPattern( "MM/dd/uuuu hh:mm:ss" ) ;
) ;
您所需的輸出幾乎符合java.time 中默認使用的 ISO 8601 標準格式,除了中間的 SPACE 而不是T.
String output = ldt.toString().replace( "T" , " " ) ;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/382523.html
