![](/img/trans.png)
[英]Convert Joda-Time DateTime - ISO 8601 format date to another date format
[英]Java - Convert string to ISO 8601 date format error Joda-Time
我正在嘗試使用Joda-Time將應用程序用戶以String形式輸入的日期轉換為ISO 8601格式,因此我正在使用以下代碼,但出現錯誤:
String oldDate = "05/05/2013";
DateTime oldD = DateTime.parse(oldDate);
DateTimeFormatter OldDFmt = ISODateTimeFormat.dateTime();
String str = OldDFmt.print(oldD);
System.out.println(str);
但我總是出錯:
org.springframework.web.util.NestedServletException:請求處理失敗; 嵌套的異常為java.lang.IllegalArgumentException:無效的格式:“ 05/05/2013”的格式為“ / 05/2013”
有人可以幫忙告訴我我在做什么錯嗎? 謝謝。
有人可以幫忙告訴我我在做什么錯嗎?
錯誤發生在這里。
DateTime oldD = DateTime.parse(oldDate);
DateTime.parse(String)
方法使用ISODateTimeFormat.dateTimeParser()
解析String
參數。
datetime = time | date-opt-time
time = 'T' time-element [offset]
date-opt-time = date-element ['T' [time-element] [offset]]
date-element = std-date-element | ord-date-element | week-date-element
std-date-element = yyyy ['-' MM ['-' dd]]
ord-date-element = yyyy ['-' DDD]
week-date-element = xxxx '-W' ww ['-' e]
time-element = HH [minute-element] | [fraction]
minute-element = ':' mm [second-element] | [fraction]
second-element = ':' ss [fraction]
fraction = ('.' | ',') digit+
offset = 'Z' | (('+' | '-') HH [':' mm [':' ss [('.' | ',') SSS]]])
你的
String oldDate = "05/05/2013";
不是。
您需要使用解析器來解析String
日期,解析器具有相應的格式,如Paul Hicks所建議的那樣。 然后,您可以將創建的DateTime
格式化為ISO標准格式。
您用來解析字符串DateTime.parse(oldDate)
的格式化程序是默認格式器:根據javadocs ISODateTimeFormat.dateTimeParser()
。 您需要一個解析DateTimeFormatter
,它知道您的字符串格式dd/mm/yyyy
。 我不使用joda-time,但我認為您需要這樣做:
DateTimeFormatter stringParser = DateTimeFormat.forPattern("dd/MM/yyyy");
其余代碼看起來還不錯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.