解析日期物件
將日期字串轉換為JAVA系統日期物件(LocalDate)。如果日期字串無法通過check()驗證,抛出執行期例外。
◎ LocalDate parse(String)
- 適用於:YYYMMDD
- 轉換為Java8 LocalDate 物件。
◎ LocalDate parseWithSeparator(String)
- 適用於:YYYMMDD
- 因為指定輸入資料有插入分隔字元,所以可允許輸入年月日未補0至固定位數。
- 如果輸入未包含指定分割字元,視同一般YYYMMDD格式解析。
final LocalDate expected = LocalDate.of(2009, 8, 3); assertEquals(expected, YYYMMDDUtils.parseWithSeparator("098/08/03", '/')); assertEquals(expected, YYYMMDDUtils.parseWithSeparator("098/8/3", '/')); assertEquals(expected, YYYMMDDUtils.parseWithSeparator("98/8/3", '/')); // 輸入未包含指定分割字元,視同一般YYYMMDD格式解析。 assertEquals(expected, YYYMMDDUtils.parseWithSeparator("0980803", '/')); // 以 – 分割的民國前日期,是解析時的例外情境。 assertEquals(LocalDate.of(1911,12,1),YYYMMDDUtils.parseWithSeparator("-1-12-01", '-')); // 連續的兩個 – 是錯誤格式: // expectException ( () -> YYYMMDDUtils.parseWithSeparator("--1-1-1", '-')) );