【问题标题】:Get day of month from LocalDate with leading zero [duplicate]从 LocalDate 获取前导零的月份日期[重复]
【发布时间】:2021-06-08 11:35:45
【问题描述】:

我以LocalDate dateOfBirthday = LocalDate.of(2000, 1, 1); 之类的格式获取日期。

我需要从该日期获取月份中的哪一天。我使用dateOfBirthday.getDayOfMonth(),它可以工作并返回1,但我需要得到01

我该怎么做?

【问题讨论】:

  • 不,我可以得到日期 LocalDate.of(2000, 1, 10);而且它不会工作。
  • 这能回答你的问题吗? Add leading zeroes to number in Java?
  • 1 from getDayOfMonth() 是一个整数,01 是一个字符串。所以你必须隐藏它
  • @OHGODSPIDERS 如果这回答了问题,那么它给出了错误的答案。给定LocalDate,我们不应先转换为int,然后再转换为零填充的String。为此,我们有DateTimeFormatter,您提到的问题中没有提到。重复标记是相当有害的。

标签: java java-8 localdate


【解决方案1】:

正如 Benjamin M 在评论中正确指出的那样,01 将是一个字符串(而不是 int)。将日期转换为字符串的正确方法是通过格式化程序。这个给你一个两位数的月份 - 所以一月的 01 到十二月的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 2021-03-12
    • 2019-06-30
    • 2020-10-15
    • 2018-12-14
    相关资源
    最近更新 更多