2 回答

TA貢獻1807條經驗 獲得超9個贊
假設這day
是一個int
然后與
day = String.format("%02d", day);
您正在嘗試將字符串重新分配給int
嘗試
String dayStr = String.format("%02d", day);
編輯
所以既然day
已經是那么就行不通意味著它是一個String
format("%02d", day);
d
int
所以將其轉換為int
第一個
day = String.format("%02d", Integer.valueOf (day));

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日
添加回答
舉報