如何生成时间区间

因为做秒杀模块,需要实现一个时间区间的功能,计算出最近比如

2021-05-06 00:00:00   2021-05-08 23:59:59

 

一开始想到了new Date();得到的格式是yyyy-MM-dd HH:mm:ss,多加一天或几天,需要对dd操作

Date date = new Date();//2021-05-06 19:04:23

可以使用LocalDate类,通过调用plusDays()方法可以实现天数的增加

    @Test
    public void contextLoads(){

        //2021-05-06 00:00:00   2021-05-08 23:59:59
        LocalDate now = LocalDate.now();
        LocalDate plus = now.plusDays(1);
        LocalDate plus2 = now.plusDays(2);

        System.out.println(now);
        System.out.println(plus);
        System.out.println(plus2);
    }

 

 

 

 

得到结果:没有了时分秒

 

 

 

 

 我们再来看一下如何输入时分秒,可以使用LocalTime类

@Test
    public void contextLoads(){

        LocalTime min = LocalTime.MIN;
        LocalTime max = LocalTime.MAX;
        System.out.println(max);
        System.out.println(min);
    }

结果:

 

 

 

最后做个拼串就好了

@Test
    public void contextLoads(){

        //2021-05-05 00:00:00   2021-05-05 23:59:59
        LocalDate now = LocalDate.now();
        LocalDate plus = now.plusDays(1);
        LocalDate plus2 = now.plusDays(2);

//        System.out.println(now);//2021-05-05
//        System.out.println(plus);//2021-05-06
//        System.out.println(plus2);//2021-05-07

        LocalTime min = LocalTime.MIN;
        LocalTime max = LocalTime.MAX;
//        System.out.println(max);//23:59:59.999999999
//        System.out.println(min);//00:00

        LocalDateTime start = LocalDateTime.of(now, min);
        LocalDateTime end = LocalDateTime.of(plus2, max);
        System.out.println(start);
        System.out.println(end);
    }

最后结果是

 

 

格式替换一下

String startFormat = start.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
String endFormat = end.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(startFormat);
System.out.println(endFormat);

输出结果:

 

 

两个字:舒适

posted @ 2021-05-06 12:53  广大青年  阅读(332)  评论(0)    收藏  举报