2013-05-02 63 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

相关问题