我在嘗試使用這種格式解析日期時遇到錯誤:2001 年 3 月 26 日 2001 年 8 月 15 日我正在使用下一個代碼: private void parseDate(String firstDate) { Date fDate = null; try { fDate = new SimpleDateFormat("dd-MMM-yyyy").parse(firstDate); } catch (ParseException e) { e.printStackTrace(); } }但我收到錯誤消息:無法解析的日期:“15-August-2001”。我不太確定我必須使用哪種日期格式。謝謝
2 回答

墨色風雨
TA貢獻1853條經驗 獲得超6個贊
LocalDate .parse(?? ??"15-August-2001"?,? ????DateTimeFormatter.ofPattern(?"dd-MMMM-uuuu"?,?Locale.US?) ) .toString()
提示:最好僅使用標準ISO 8601格式以文本方式交換日期時間數據。
java.time
雖然在技術上是正確的,但已經過時了?,F代方法使用java.time類,這些類通過采用 JSR 310 取代了遺留的日期時間類。
LocalDate
該類LocalDate
表示沒有日期時間和時區或offset-from-UTC 的僅日期值。
DateTimeFormatter
使用 定義自定義格式化模式DateTimeFormatter.ofPattern
。格式化代碼與遺留類不完全相同SimpleDateFormat
,所以一定要仔細研究 Javadoc。
指定 aLocale
以確定在翻譯月份名稱時使用的人類語言。
String input = "15-August-2001" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd-MMMM-uuuu" , Locale.US ) ;
LocalDate ld = LocalDate.parse( input , f ) ;
System.out.println( "ld.toString(): " + ld ) ;
ld.toString(): 2001-08-15
添加回答
舉報
0/150
提交
取消