首页 > 其他分享 >日期操作(获取所有月份+分割时间段)

日期操作(获取所有月份+分割时间段)

时间:2022-09-05 08:55:16浏览次数:67  
标签:分割 String format add 日期 calBegin 时间段 new Calendar

日期操作(获取所有月份+分割时间段)

/*
	 * 获取所有的的月份
	 */
	private static List<String> getInitMonthMapWithZero() {
		List<String> list = new ArrayList<String>();
		Calendar c = Calendar.getInstance();
		for (int i = 0; i < 12; i++) {
			int k = c.get(Calendar.YEAR);
			int j = c.get(Calendar.MONTH) + 1 - i;
			String date = "";
			if (j >= 1) {
				date = k + "-" + (j >= 10 ? "" : "0") + j;
			} else {
				int p = 11 - i;// 剩余循环次数
				int m = c.get(Calendar.YEAR) - 1;
				int n = c.get(Calendar.MONTH) + 2 + p;
				date = m + "-" + (n >= 10 ? "" : "0") + n;
			}
			list.add(date);
		}
		return list;
	}
 * 按照指定小时分割时间段
 * 
 * @param dateType   类型 M/D/H/N -->每月/每天/每小时/每分钟
 * @param dBegin开始时间
 * @param dEnd结束时间
 * @param time       指定小时(如:1、2、3、4)
 * @return
 */
public static List<String> findDates(String dateType, Date dBegin, Date dEnd, int time) throws Exception {
	List<String> listDate = new ArrayList<>();
	listDate.add(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(dBegin));
	Calendar calBegin = Calendar.getInstance();
	calBegin.setTime(dBegin);
	Calendar calEnd = Calendar.getInstance();
	calEnd.setTime(dEnd);
	while (calEnd.after(calBegin)) {
		if ("H".equals(dateType)) {
			calBegin.add(Calendar.HOUR, time);
		}
		if ("M".equals(dateType)) {
			calBegin.add(Calendar.MONTH, time);
		}
		if ("D".equals(dateType)) {
			calBegin.add(Calendar.DATE, time);
		}
		if ("N".equals(dateType)) {
			calBegin.add(Calendar.MINUTE, time);
		}
		if (calEnd.after(calBegin)) {
			listDate.add(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(calBegin.getTime()));
		} else {
			listDate.add(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(calEnd.getTime()));
		}

	}
	return listDate;
}

public static void main(String[] args) throws Exception {
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
	SimpleDateFormat nowDate = new SimpleDateFormat("yyyy-MM-dd");
	Date date = new Date();
	String format = nowDate.format(date);
	String startDate = format.concat(" 00:00");
	String endDate = format.concat(" 23:59");
	Date dBegin = sdf.parse(startDate);
	Date dEnd = sdf.parse(endDate);
	List<String> list = findDates("H", dBegin, dEnd, 3);
	for (String str : list) {
		System.out.println(str);
	}
}

标签:分割,String,format,add,日期,calBegin,时间段,new,Calendar
From: https://www.cnblogs.com/hhs-5120/p/16656843.html

相关文章

  • 【SQL】将日期时间转换成年月日的日期形式
    【SQL】将日期时间转换成年月日的日期形式这段时间写力扣的SQL题,发现了各式各样的转换时间的方法,正好记录一下TO_CHAR(XXX,'YYYY-MM-DD')这个在Oracle应该是很常用的......
  • layDate 日期与时间组件
    1layDate下载https://dev.layuion.com/extend/search/layDate/2 layDate组件的季度、半年的选择1)首先引入laydate.js文件;<scripttype="text/javascript"src="${rc......
  • LeetCode 131 分割回文串
    classSolution{public:vector<vector<string>>res;vector<string>path;boolis(strings,intstart,intend){for(inti=start,j=......
  • Java如何获取两个日期之间的月份和年份列表
    1、获取年份列表示例如下importjava.text.DateFormat;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Calendar;​public......
  • Excel表格斜杠分割打字
    步骤:一、选择单元格,右击选择设置单元格格式二、选择边框,如图1所示三、选择字体,选择上标或者下标,利用空格调整距离位置,如图2所示图1   图2......
  • 如何在 JavaScript 中从日期中减去秒数
    如何在JavaScript中从日期中减去秒数让我们学习如何轻松地从a中减去任意秒数日期JavaScript中的对象。1.日期setSeconds()和getSeconds()方法从a中减去......
  • 3.计算两个日期的间隔(C++time库)
    一.日期加法题目描述给定一个日期Day和一个正整数n,求日期Day加上n天后的日期。输入描述第一行为给定的日期Day(格式为YYYY-MM-DD,范围为1900-01-01<=Day<=2199-12-31),数据......
  • SpringMVC 06: 日期类型的变量的注入和显示
    日期处理和日期显示日期处理此时SpringMVC的项目配置和SpringMVC博客集中(指SpringMVC02)配置相同日期处理分为单个日期处理和类中全局日期处理单个日期处理:使用@Da......
  • SQL--统计日期期间内每天的数据量,没有补0
    需求:在某些业务后台看板中,需要统计某日期范围内每天的数据量,以及总的数据量,如果某一天没有数据,则补0。分析:1、在数据库中规定日期范围内的日期可能不全,但是最后需要统计......
  • Python入门系列(八)日期时间、数学、json
    日期时间Python中的日期本身不是数据类型,但我们可以导入一个名为datetime的模块,将日期作为日期对象使用。importdatetimex=datetime.datetime.now()print(x)日期......