java.util.Date系列之(依次获取每个时间段的日期时间)

在开发中,如果我们想查询数据库中某一天所有某个或所有时间点的数据,那么就要先获得当天的所有想查询的时间点

本人开发中的真实案例: 需要把当天从00:00开始到第二天的00:00(半小时(30分钟)为间隔)的数据全部查询出来展示**
相当于就是00:00,00:30,01:00,01:30,02:00,02:30…
获得我们想要的所有时间点之后,可使用sql模糊或精确查询数据库日期时间字段

小伙伴们很好奇为什么要以30分钟为间隔,解释下哈:本人项目中的数据库日期时间字段都是间隔30分钟的哈,意思是要么是整点比如12:00,要么就是:12:30所有不存在其他时间哈

package com.date.test;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @author: libo
 * @date: 2020/9/22  18:02
 * @motto: 即使再小的帆也能远航
 */
@SpringBootTest
public class test {

    @Test
    public void test() throws ParseException {

        /*获取当天日期*/
        Date date = new Date();
        /*设置日期格式*/
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        /*将日期转为字符串*/
        String today = df.format(date);

        /*将字符串转为Date类型*/
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        /*从当前日期的00:00开始*/
        Date parse = simpleDateFormat.parse(today + " 00:00");

        /*输出开始日期时间*/
        String format = simpleDateFormat.format(parse);
        System.out.println(format);

        /*循环47次(24*2-1获得每半个小时的时间    第一天00:00到第二天00:00)*/
        for (int y = 0; y < 48; y++) {

            /*将指定时间依次加30分钟,循环到23:30为止(以此类推,如果是获取按小时划分, +60分钟)*/
            Calendar c = Calendar.getInstance();
            /*设置指定时间*/
            c.setTime(parse);
            /*将设置的时间加上30分钟*/
            c.add(Calendar.MINUTE, 30);
            /*获得加上30分钟后的时间*/
            Date dateTime = c.getTime();
            /*将新时间赋值后再循环*/
            parse = dateTime;

            /*将date转为字符串*/
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            String format2 = sdf.format(dateTime);

            System.out.println(format2);
        }
    }

}
当人们做不到一些事情的时候,他们会对你说你也同样不能。
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值