[英]Date format issue using LocalDate
我需要將Date object
(它在調試模式下顯示 --->“Mon Sep 23 00:00:00 EDT 2019”)轉換為另一個具有“yyyy-MM-dd”格式的Date object
。
我嘗試了以下代碼,但出現運行時錯誤:
java.time.format.DateTimeParseException:無法在索引 0 處解析文本“Mon Sep 23 00:00:00 EDT 2019”。
LocalDate localDate = LocalDate.parse(date.toString(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
Date result = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
謝謝你的幫助!。
您在調試器中看到的內容由 IDE 的自定義格式化程序進行格式化。 Date.toString()
有它自己的格式。 但是,您應該使用 java 轉換方法在日期和本地日期之間進行更改
這是date.toString()
上的一個除外:
Java Date 類的 toString() 方法將此日期對象轉換為“dow mon dd hh:mm:ss zzz yyy”形式的字符串。 此方法覆蓋類對象中的 toString。
模式"yyyy-MM-dd"
與此不兼容。
然而,你為什么要這樣做? 有更好的方法可以將Date
轉換為LocalDate
。
請嘗試以下操作:
public LocalDate convertToLocalDateViaInstant(Date dateToConvert) {
return dateToConvert.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDate();
}
public Date convertToDateViaSqlDate(LocalDate dateToConvert) {
return java.sql.Date.valueOf(dateToConvert);
}
Date
對象是Date
,沒有別的。 Date
對象的字符串表示可以有格式。 我認為這
new SimpleDateFormat('yyyy-MM-dd').format(date);
是您唯一需要的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.