是否有办法强迫Joda time只在日期包含4位数年份时才解析它们?例如:
尝试了以下代码:
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
DateTimeFormatter formatter = builder.appendYear(4, 4).appendLiteral('-').appendMonthOfYear(1).appendLiteral('-').appendDayOfMonth(1).toFormatter();
formatter.parseDateTime("09-11-11");分析到0009-11-11。显然,方法minDigits中的appendYear只用于打印日期时的格式设置。
如果我使用appendYearOfEra(),结果是相同的。如果我使用appendYearOfCentury(),它会将年份解析为1909年。
我们正在实现一个通用数据解析器,它将识别各种类型的输入。此外,这个例子是真实交易的缩写形式(为了简单起见)。现实生活场景分析日期,可以有平日,月份作为文字,时间,区域和不同的字符分隔月,日和年。因此,编写RegEx或检查字符串的内容/长度可能会非常困难。
一些实际的例子可能如下所示:
发布于 2009-11-11 11:38:29
DateTimeFormatterBuilder#appendFixedDecimal()很可能会做你需要做的事情。
或者,您可以实现DateTimeParser接口来创建任何您想要的解析器,并将其传递给DateTimeFormatterBuilder。
发布于 2009-10-23 08:58:34
您可以使用DateTimeFormatterBuilder构建非常特定的解析器和格式化程序。通常不需要直接使用这个类,因为大多数常见的格式在API的其他地方更容易获得,但这是他们在幕后使用的构建器类。
发布于 2009-10-23 09:13:19
您可以检查日期字符串的长度。
https://stackoverflow.com/questions/1612150
复制相似问题