Emi*_*vas 4 java datetime jodatime
有没有办法强制Joda时间只在它们包含四位数年份时解析日期?例如:
试过以下代码:
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
DateTimeFormatter formatter = builder.appendYear(4, 4).appendLiteral('-').appendMonthOfYear(1).appendLiteral('-').appendDayOfMonth(1).toFormatter();
formatter.parseDateTime("09-11-11");
Run Code Online (Sandbox Code Playgroud)
解析成0009-11-11.显然,方法appendYear中的minDigits仅用于在打印日期时进行格式化.
如果我使用appendYearOfEra(),结果是一样的.如果我使用appendYearOfCentury(),它会将年份解析为1909年.
我们正在实现一般数据解析器,它将识别各种类型的输入.此示例也是实际交易的缩短形式(为简单起见).现实生活场景解析可以有工作日的日期,月份作为单词,时间,区域和分隔月,日和年的不同字符.因此,编写RegEx或检查字符串的内容/长度可能相当困难.
一些真实的例子可能如下所示:
DateTimeFormatterBuilder.appendFixedDecimal()可能会做你需要的.
或者,您可以实现DateTimeParser接口来创建所需的任何解析器并将其传递到DateTimeFormatterBuilder.
| 归档时间: |
|
| 查看次数: |
2339 次 |
| 最近记录: |