Joda time forPattern无法正常使用4位数年份

时间:2012-10-07 12:26:19

标签: android jodatime

假设我有以下解析器与joda-time lib for android

DateTimeFormat.forPattern("dd.MM.yyyy").parseDateTime(maybeDate);

我的目标是使用TextWatcher过滤某些editText中的输入,并尝试解析输入并检查它是否为Date。

以下时间通过此模式,尽管有4个“y”字母!

06.12.1 (虽然我试图把06.12.1988)

P.S。对于格式化程序,appendYear(4,4)也会失败。

1 个答案:

答案 0 :(得分:5)

这遵循与Java的SimpleDateFormat

相同的规则
  

对于解析,如果模式字母的数量大于2,则无论数字位数如何,都按字面解释年份。所以使用模式“MM / dd / yyyy”,“01/11/12”解析到12月1日,12 A.D。

您可能需要考虑的一个选项是在解析后格式化值 - 如果它不是往返的(即格式化的值与原始文本不同),请将其拒绝为无效。