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

本文最后更新于:2023年11月9日 晚上

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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);
}
}
}
当人们做不到一些事情的时候,他们会对你说你也同样不能。

java.util.Date系列之(依次获取每个时间段的日期时间)
http://example.com/2020/10/02/java.util.Date系列之(依次获取每个时间段的日期时间)/
作者
阿波~
发布于
2020年10月2日
更新于
2023年11月9日
许可协议