从 LocalDate 获取月份中的某天(带前导零)

rob*_*801 -2 java java-8 localdate

我得到的日期格式类似于LocalDate dateOfBirthday = LocalDate.of(2000, 1, 1);.

我需要从该日期获取该月的日期。我使用dateOfBirthday.getDayOfMonth()并且它有效并返回1,但我需要得到01.

我怎样才能做到呢?

Ole*_*.V. 14

正如本杰明·M 在评论中正确指出的那样,01将是一个字符串(而不是int)。将日期转换为字符串的正确方法是通过格式化程序。编辑:这将为您提供两位数的月份日期(01 到 31):

\n
private static final DateTimeFormatter dayOfMonthFormatter\n        = DateTimeFormatter.ofPattern("dd");\n
Run Code Online (Sandbox Code Playgroud)\n

要将其与您的出生日期一起使用:

\n
    LocalDate dateOfBirthday = LocalDate.of(2000, 1, 1);\n    String twoDigitDayOfMonth = dateOfBirthday.format(dayOfMonthFormatter);\n    System.out.println("Day of month: " + twoDigitDayOfMonth);\n
Run Code Online (Sandbox Code Playgroud)\n

输出是:

\n
\n

月份日期: 01

\n
\n

原始答案:这个给你一个两位数的月份 \xe2\x80\x94 所以 01 代表一月到 12 代表十二月:

\n
private static final DateTimeFormatter monthFormatter\n        = DateTimeFormatter.ofPattern("MM");\n
Run Code Online (Sandbox Code Playgroud)\n

要将其与您的出生日期一起使用:

\n
    LocalDate dateOfBirthday = LocalDate.of(2000, 1, 1);\n    String twoDigitMonth = dateOfBirthday.format(monthFormatter);\n    System.out.println("Month: " + twoDigitMonth);\n
Run Code Online (Sandbox Code Playgroud)\n

输出是:

\n
\n

月份:01

\n
\n