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日
添加回答
举报