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
from
getDayOfMonth()
是一个整数,
01
将是一个字符串。所以你必须隐蔽起来it@OHGODSPIDERS如果这回答了问题,那么它给出了错误的答案。给定一个
LocalDate
,我们不应该先转换为
int
,然后再转换为零填充的
字符串。为此,我们有
DateTimeFormatter
,您提到的问题中没有提到这一点。重复标记相当有害。