我有一個字串,其中包含日期和時間,格式如下
“2020-09-20-08-40”
我嘗試將該字串轉換為格式為“dd-MM-yyyy HH:mm”的日期并在文本視圖中列印。我看到其他人嘗試用這種方式轉換
String dateString = "2020-09-20-08-40"
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
SimpleDateFormat format2 = new SimpleDateFormat("dd-MM-yyyy HH:mm");
Date date = format1.parse(dateString);
String dateFinal = format2.format(date);
t_date.setText(dateFinal);
當我嘗試這種方式時,出現錯誤 java.lang.IllegalArgumentException
如何解決這個問題?
uj5u.com熱心網友回復:
tl;博士
LocalDateTime.parse(
"2020-09-20-08-40" ,
DateTimeFormatter.ofPattern( "uuuu-MM-dd-HH-mm" )
)
查看在 IdeOne.com 上實時運行的代碼。
2020-09-20T08:40
細節
避免使用糟糕的遺留日期時間類。僅使用java.time類。
定義格式模式以匹配您的輸入。
DateTimeFormatter f = DateTimeFormatter.ofPattern( "uuuu-MM-dd-HH-mm" ) ;
決議您的輸入文本。
LocalDateTime ldt = LocalDateTime.parse( input , f ) ;
提示:讓資料發布者了解ISO 8601標準,以將日期時間值作為文本進行交換。無需發明您的問題中看到的這種格式。java.time類在決議/生成字串時默認使用標準格式,因此無需指定格式模式。
uj5u.com熱心網友回復:
感謝@Nima Khalili 和@Andre Artus 的回答,我可以解決這個問題。我的代碼看起來像這樣
String dateString = "2020-09-20-08-40"
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd-HH-mm");
SimpleDateFormat format2 = new SimpleDateFormat("dd-MM-yyyy HH:mm");
Date date;
try {
date = format1.parse(dateString);
String dateFinal = format2.format(date);
t_date.setText(dateFinal);
} catch (ParseException e) {
e.printStackTrace();
}
uj5u.com熱心網友回復:
如果您有一個日期 時間,例如“2020-09-20-08-40”,那么您的格式應該反映這一點,例如
“yyyy-MM-dd-HH-mm”
uj5u.com熱心網友回復:
嘗試這個 :
String dateString = "2020-09-20 08:40";
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = null;
try {
date = format1.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
String dateFinal = format1.format(date);
t_date.setText(dateFinal);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/435911.html
