我预计这会引发异常,因为2016年2月1日不是星期五:
final DateTimeFormatter formatter = DateTimeFormat.forPattern("EEEE, d MMMM yyyy");
final DateTime date = formatter.parseDateTime("Friday, 1 February 2016");
System.out.println(formatter.print(date));
相反,它打印出Friday, 5 February 2016
。我在这里缺少什么?
答案 0 :(得分:5)
在文档(http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormatter.html)
中对此进行了解释解析通过设置'来构建生成的瞬间。每个解析字段的值从最大到最小到初始时刻,通常是1970-01-01T00:00Z。此设计意味着每周的日期设置在星期几之前。因此,如果解析了星期几和星期几,并且星期几不正确,则然后星期几将覆盖日期。如果输入不一致,则会产生副作用。