【问题标题】:Convert Integer To Date in Java在 Java 中将整数转换为日期
【发布时间】:2021-02-01 09:42:07
【问题描述】:

我有整数 a = 30;

我如何每个月转换 Date 30。

例子

整数 a = 25; 25/01/2021 25/02/2021 25/03/2021

整数 a = 10; 2021 年 10 月 1 日 2021 年 10 月 2 日 2021 年 10 月 3 日

【问题讨论】:

    标签: java date date-format localdate datetimeformatter


    【解决方案1】:

    您可以创建一个循环来运行12 次(每个月一次)。从月份开始,1 和指定的日期。在每次迭代中,打印日期,并将月份增加1 以进行下一次迭代。

    import java.time.LocalDate;
    import java.time.format.DateTimeFormatter;
    
    public class Main {
        public static void main(String[] args) {
            int x = 10;
            LocalDate start = LocalDate.now().withMonth(1).withDayOfMonth(x);
            for (int i = 1; i <= 12; i++, start = start.plusMonths(1)) {
                System.out.println(start.format(DateTimeFormatter.ofPattern("dd/MM/uuuu")));
            }
        }
    }
    

    输出:

    10/01/2021
    10/02/2021
    10/03/2021
    10/04/2021
    10/05/2021
    10/06/2021
    10/07/2021
    10/08/2021
    10/09/2021
    10/10/2021
    10/11/2021
    10/12/2021
    

    Trail: Date Time 了解有关日期时间 API 的更多信息。

    【讨论】:

      【解决方案2】:

      您可以使用LocalDate#ofLocalDate#plusMonths

      int day = 31;
      int months = 3;
      
      LocalDate firstDate = LocalDate.of(2021, 1, day);
      
      List<LocalDate> dates = IntStream.range(0, months)
              .mapToObj(firstDate::plusMonths)
              .collect(Collectors.toList());
      
      

      这将输出这些日期:

      2021-01-31
      2021-02-28
      2021-03-31
      

      【讨论】:

        猜你喜欢
        • 2021-08-17
        • 2018-10-16
        • 2022-07-07
        • 1970-01-01
        • 2017-02-17
        • 2019-04-22
        • 2015-04-17
        相关资源
        最近更新 更多