2012-10-07 29 views
1

假设我有以下与乔达时间LIB解析器为Android乔达时间forPattern不正确使用4位数的年工作

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

我的目标是在一些EDITTEXT与TextWatcher过滤输入和尝试解析输入并检查它是否是日期。

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

06.12.1(当我试图把1988年6月12日)

附: formatter的appendYear(4,4)也失败。

回答

5

这遵循相同的规则,Java的SimpleDateFormat

用于解析,如果模式字母的数量为2个以上,全年字面解释,无论位数的数字。因此使用模式“MM/DD/YYYY”,“01/11/12”解析到1月11日,公元12你可能要考虑解析后格式化值

一种选择 - 如果它不” t往返(即如果格式化的值与原始文本不同),将其拒绝为无效。