亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在可選的 DateTime-Pattern 中設置前導零

如何在可選的 DateTime-Pattern 中設置前導零

手掌心 2023-05-17 17:42:11
我有一個用戶輸入字段,想解析他的日期,無論他輸入什么。用戶可能會提供他的日期前導零或不帶前導零,所以我希望能夠解析這樣的輸入02.05.2019還有這個2.5.2019但據我所知,沒有辦法讓前導零成為可選的,要么總是有 2 位數字,如 01、03、12 等,要么只有必要的數字,如 1、3、12。所以顯然我必須決定是否允許前導零,但是真的沒有辦法讓前導零可選嗎?好吧,我測試了一個包含前導零 dd.MM.uuuu 的模式,并測試了一個不包含前導零 dMuuuu 的模式,當我用錯誤的模式解析錯誤的輸入時,拋出了異常。因此我的問題是是否有辦法讓前導零成為可選的。
查看完整描述

3 回答

?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

當您知道時,這是微不足道的。一個模式字母,例如dor M,將接受一位或兩位數字(或年份最多 9 位數字)。


    DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("d.M.u");

    System.out.println(LocalDate.parse("02.05.2019", dateFormatter));

    System.out.println(LocalDate.parse("3.5.2019", dateFormatter));

    System.out.println(LocalDate.parse("4.05.2019", dateFormatter));

    System.out.println(LocalDate.parse("06.5.2019", dateFormatter));

    System.out.println(LocalDate.parse("15.12.2019", dateFormatter));

輸出:


2019-05-02

2019-05-03

2019-05-04

2019-05-06

2019-12-15

我在文檔中搜索了這些信息,但沒有輕易找到。我不認為它有據可查。


查看完整回答
反對 回復 2023-05-17
?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

您可以使用這樣的自定義格式創建 DateTimeFormatter


DateTimeFormatter.ofPattern("d.M.yyyy")

然后,如果日期和月份提供 1 位或 2 位數字,則您可以解析日期。


String input = "02.5.2019";

LocalDate date = LocalDate.parse(input, DateTimeFormatter.ofPattern("d.M.yyyy"));

我在這里使用了新的 java.time 包中的 LocalDate,所以我假設您的 Java 版本是最新的。


查看完整回答
反對 回復 2023-05-17
?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

您建議的日期格式應該有效——就像這個測試一樣:


@Test

public void test() throws ParseException {

    SimpleDateFormat f = new SimpleDateFormat("d.M.yyyy");

    f.parse("7.8.2019");

    f.parse("07.08.2019");

    f.parse("007.008.002019");

}

相比之下,DateTimeFormatter 不接受年份的前導零,但日和月的前導零不是問題:


@Test

public void test2() throws ParseException {

    DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();

    DateTimeFormatter f = builder.appendPattern("d.M.yyyy").toFormatter();

    f.parse("7.8.2019");

    f.parse("07.08.2019");

    f.parse("007.008.2019");

}


查看完整回答
反對 回復 2023-05-17
  • 3 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號