第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何在可選的 DateTime-Pattern 中設(shè)置前導(dǎo)零

如何在可選的 DateTime-Pattern 中設(shè)置前導(dǎo)零

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

3 回答

?
素胚勾勒不出你

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊

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


    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

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


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

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以使用這樣的自定義格式創(chuàng)建 DateTimeFormatter


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

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


String input = "02.5.2019";

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

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


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

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊

您建議的日期格式應(yīng)該有效——就像這個(gè)測試一樣:


@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 不接受年份的前導(dǎo)零,但日和月的前導(dǎo)零不是問題:


@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");

}


查看完整回答
反對 回復(fù) 2023-05-17
  • 3 回答
  • 0 關(guān)注
  • 166 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號