2013-05-02 55 views

回答

5

DateTimeFormatter有兩種用法:

  • 打印日期;
  • 解析日期;

當您創建DateTimeFormatter instance,你傳遞給它DateTimePrinterDateTimeParser

如果您格式化只有打印機,並希望解析日 - UnsupportedOperationException將被拋出。

如果您格式化只有解析器,並且要打印日 - UnsupportedOperationException將被拋出。

DateTimeFormatter formatter = new DateTimeFormatter(new DateTimePrinter() 
    { 
    // implements all abstract methods   
    }, null); // this instance has printer and hasn't parser 
    formatter.print(new DateTime()); // works well 
    formatter.parseDateTime("datetimestring"); // throws exeption 
+0

阿好知道了,謝謝。看起來好像'org.joda.time.format.DateTimeFormat.forPattern(String)'將總是返回一個帶打印機和解析器的'DateTimeFormatter';所以通過'forPattern'獲取的'DateTimeFormatter'不應該拋出UnsupportedOperationException正確嗎? – FGreg 2013-05-03 13:22:16

+1

@FGreg是的,這是真的 – Ilya 2013-05-03 13:27:14

+2

此外,請注意有兩個類似的實例方法:'ISODateTimeFormat.dateTime()'和'ISODateTimeFormat.dateTimeParser()'。如果你使用後者並嘗試'.format(dateTime)',你會得到這個異常。 – membersound 2015-02-06 14:37:09

相關問題