Java 使用前导零从LocalDate获取月日
我获取的日期格式类似于Java 使用前导零从LocalDate获取月日,java,java-8,localdate,Java,Java 8,Localdate,我获取的日期格式类似于localdateofbirthday=LocalDate.of(2000,1,1) 我需要从那一天算起一个月的哪一天。我使用了dateOfBirthday.getDayOfMonth(),它工作并返回1,但我需要得到01 我该怎么做?正如本杰明•M在评论中正确指出的那样,01将是一个字符串(而不是int)。将日期转换为字符串的正确方法是通过格式化程序。这一个给你一个两位数的月份-so 01从1月到12月: private static final DateTimeForm
localdateofbirthday=LocalDate.of(2000,1,1)代码>
我需要从那一天算起一个月的哪一天。我使用了dateOfBirthday.getDayOfMonth()
,它工作并返回1
,但我需要得到01
我该怎么做?正如本杰明•M在评论中正确指出的那样,01
将是一个字符串(而不是int
)。将日期转换为字符串的正确方法是通过格式化程序。这一个给你一个两位数的月份-so 01从1月到12月:
private static final DateTimeFormatter monthFormatter
= DateTimeFormatter.ofPattern("MM");
要将其与您的出生日期一起使用:
LocalDate dateOfBirthday = LocalDate.of(2000, 1, 1);
String twoDigitMonth = dateOfBirthday.format(monthFormatter);
System.out.println("Month: " + twoDigitMonth);
输出为:
月份:01
不,我可以得到日期LocalDate.of(2000,1,10);这不是工作,这能回答你的问题吗1
fromgetDayOfMonth()
是一个整数,01
将是一个字符串。所以你必须隐蔽起来it@OHGODSPIDERS如果这回答了问题,那么它给出了错误的答案。给定一个LocalDate
,我们不应该先转换为int
,然后再转换为零填充的字符串。为此,我们有DateTimeFormatter
,您提到的问题中没有提到这一点。重复标记相当有害。