有沒有辦法強制約達時間解析日期,只有當他們包含四位數年?例如:如何僅解析四位數年份(與喬達時間)?
- 2009-11-11 - 應該解析
- 11年9月11日 - 不應該解析
試過以下代碼:
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。顯然,方法appendYear中的minDigits僅在打印日期時用於格式化。
如果我使用appendYearOfEra(),結果是一樣的。如果我使用appendYearOfCentury(),它會將年份解析爲1909年。
我們正在實現一個通用數據解析器,它將識別各種類型的輸入。這個例子也是真實交易的縮寫形式(爲了簡單起見)。真實生活場景分析日期,可以有工作日,月份作爲文字,時間,地區和不同的字符分隔月份,日期和年份。因此,編寫正則表達式或檢查字符串的內容/長度可能相當困難。
一些實際例子看起來是這樣的:
- 2009-11-11
- 週三2009-11-11T15:00:00
- 2009/11/11 15:00
- 還有更多...
我是盲人!非常感謝。順便說一下,該方法稱爲appendFixedDecimal()。 – 2009-11-18 15:43:58