![](/img/trans.png)
[英]LocalDate.parse results in “DateTimeParseException…could not be parsed: null”
[英]LocalDate.parse Returning DateTimeParseException
標題是大部分的解釋。 我只是想將 charSequence/String 解析為 LocalDate。 我有兩種不同的格式,所以我做了兩次解析嘗試,但都不起作用。 相關代碼:
public static LocalDate ToDate(CharSequence charSequence ){ // Or String string
LocalDate date = null;
try{
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(standardFormat);
// standardDateFormat "dd MMMM, yyyy"
date = LocalDate.parse(charSequence, formatter);
} catch (DateTimeParseException a){
Log.d("ToDate", charSequence + " =/= " + standardFormat + " :: standard format failure");
} finally {
try {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(simpleDateFormat);
// simpleDateFormat = "dd MMM"
date = LocalDate.parse(charSequence, formatter);
} catch (DateTimeParseException a) {
Log.d("ToDate", charSequence + " =/= " + simpleDateFormat + " :: simple format failure");
}
}
return date;
}
返回的異常:
2022-07-19 10:10:14.759 9625-9625/com.learn.myapplication D/ToDate: 19 Jul =/= dd MMMM, yyyy :: standard format failure
2022-07-19 10:10:14.760 9625-9625/com.learn.myapplication D/ToDate: 19 Jul =/= dd MMM :: simple format failure // ?????
這對我來說看起來像相同的格式,所以我假設我缺少一些語法?
首先,教育您的數據發布者在以文本方式交換日期時間值時僅使用標准ISO 8601格式。 在您的代碼中看到的本地化文本應僅用於向用戶展示,而不是用於數據交換或數據存儲。
日期的標准格式是 YYYY-MM-DD。 一個月有一天,--MM-DD。
對於月份和日期值,請使用MonthDay
。 如果沒有年份,則不能將這樣的值放入日期類型中。
如果您堅持解析本地化字符串,請提供一個Locale
來確定人類語言和文化規范來解析月份名稱等項目。
不要用您自己的消息覆蓋異常。 因此,我們無法正確診斷您的問題。
生成本地化文本。
Locale locale = Locale.US ;
ZoneId z = ZoneId.of( "Asia/Tokyo" ) ;
MonthDay md = MonthDay.now( z ) ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd MMM" ).withLocale( locale ) ;
String output = md.format( f) ;
System.out.println( "output = " + output );
解析,如果你堅持,反對我的建議。
輸出 = 7 月 20 日
String input = "20 Jul" ;
MonthDay mdParsed = MonthDay.parse( input , f );
System.out.println( "mdParsed = " + mdParsed );
mdParsed = --07-20
您可以從該MonthDay
生成LocalDate
。
LocalDate ld = md.atYear( 2022 ) ;
ld.toString(): 2022-07-20
您可以使用相同的想法解析日期值。
所有這些都在 Stack Overflow 上多次介紹過。 搜索以了解更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.