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

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

在java中格式化包含日期的字符串時出現問題

在java中格式化包含日期的字符串時出現問題

GCT1015 2023-09-20 16:25:29
基本上我有一個包含日期的字符串,我試圖讓它在只有 1 位數字的月份和日期前面打印出 0。所以 1 會打印出 01。這是我編寫的代碼,但我收到一條錯誤消息:線程“main”java.util.IllegalFormatConversionException 中出現異常:d!= java.lang.String。day = String.format("%02d", day);
查看完整描述

2 回答

?
函數式編程

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

假設這day是一個int

然后與

day = String.format("%02d", day);

您正在嘗試將字符串重新分配給int

嘗試

String dayStr = String.format("%02d", day);

編輯

所以既然day已經是那么就行不通意味著它是一個Stringformat("%02d", day);dint

所以將其轉換為int第一個

day = String.format("%02d", Integer.valueOf (day));


查看完整回答
反對 回復 2023-09-20
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

如果允許我退后一步:這可能有點像設計問題。您不應該將日期存儲在格式的字符串中dd/mm/yyyy。您應該將日期存儲在LocalDate. 當然,如果日期是字符串輸入,例如來自用戶,您需要接受這樣的字符串。然后轉換為LocalDate:


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

? ? String dateString = "1/9/2019";

? ? LocalDate date = LocalDate.parse(dateString, dateFormatter);

要將月份中的某一天格式化為兩位數,請使用另一個DateTimeFormatter:


? ? DateTimeFormatter dayOfMonthFormatter = DateTimeFormatter.ofPattern("dd");

? ? String dayString = date.format(dayOfMonthFormatter);

? ? System.out.println("Day in two digits is " + dayString);

這種情況下的輸出是:


兩位數的日期是 01


或者輸出帶有兩位數日期和兩位數月份的完整日期:


? ? DateTimeFormatter outputDateFormatter = DateTimeFormatter.ofPattern("dd/MM/uuuu");

? ? String outputString = date.format(outputDateFormatter);

? ? System.out.println("Output: " + outputString);

輸出:2019年1月9日



查看完整回答
反對 回復 2023-09-20
  • 2 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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