Java(获取指定年月的第一天、最后一天,当前时间,设定分钟前的时间,过去、未来第几天,某时间段内的所有日期列表)

Java日期工具方法

/**
	 * 获取指定年月的第一天
	 * @param year
	 * @param month
	 * @return
	 */
	public static String getFirstDayOfMonth1(int year, int month) {
		Calendar cal = Calendar.getInstance();
		//设置年份
		cal.set(Calendar.YEAR, year);
		//设置月份
		cal.set(Calendar.MONTH, month-1);
		//获取某月最小天数
		int firstDay = cal.getMinimum(Calendar.DATE);
		//设置日历中月份的最小天数
		cal.set(Calendar.DAY_OF_MONTH,firstDay);
		//格式化日期
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
		return sdf.format(cal.getTime());
	}

	/**
	 * 获取指定年月的最后一天
	 * @param year
	 * @param month
	 * @return
	 */
	public static String getLastDayOfMonth1(int year, int month) {
		Calendar cal = Calendar.getInstance();
		//设置年份
		cal.set(Calendar.YEAR, year);
		//设置月份
		cal.set(Calendar.MONTH, month-1);
		//获取某月最大天数
		int lastDay = cal.getActualMaximum(Calendar.DATE);
		//设置日历中月份的最大天数
		cal.set(Calendar.DAY_OF_MONTH, lastDay);
		//格式化日期
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
		return sdf.format(cal.getTime());
	}

	/**
	 * 获取当前时间(精确到年月日时分秒)
	 *
	 * @return
	 */
	public static String getCurrentDayTime()
	{
		Calendar calendar = Calendar.getInstance();
		Date currentTime = calendar.getTime();
		SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
		return formatter.format(currentTime);
	}
	/**
	 * 获取设定分钟前的时间(精确到年月日时分秒)
	 *
	 * @return
	 */
	public static String getBeforeTime(int min)
	{
		Calendar beforeTime = Calendar.getInstance();
		beforeTime.add(Calendar.MINUTE, -min);
		Date beforeD = beforeTime.getTime();
		String before = new SimpleDateFormat("yyyyMMddHHmmss").format(beforeD);
		return before;
	}

	/**
	 * 获取过去第几天的日期 yyyyMMddHHmmss
	 * @param past
	 * @return
	 */
	public static String getPastDate(int past) {
		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);
		Date today = calendar.getTime();
		SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
		String result = format.format(today);
		return result;
	}

	/**
	 * 获取未来 第 dayNum 天的日期 yyyyMMddHHmmss
	 * @param dayNum
	 * @return
	 */
	public static String getFutureDate(int dayNum) {
		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + dayNum);
		Date today = calendar.getTime();
		SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
		String result = format.format(today);
		return result;
	}

	/**
	 * 查询某时间段内的所有日期列表,包括开始日期,不包括结束日期
	 * @param dBegin,dEnd
	 * @return List<String>
	 */
	public static List<String> findDates(String dBegin, String dEnd) {
		//日期工具类准备
		DateFormat format = new SimpleDateFormat("yyyyMMdd");

		try {
			//设置开始时间
			Calendar calBegin = Calendar.getInstance();
			calBegin.setTime(format.parse(dBegin));
			//使包括开始日期
			calBegin.set(Calendar.DAY_OF_YEAR, calBegin.get(Calendar.DAY_OF_YEAR) - 1);

			//设置结束时间
			Calendar calEnd = Calendar.getInstance();
			calEnd.setTime(format.parse(dEnd));
			//使不包括结束日期
			calEnd.set(Calendar.DAY_OF_YEAR, calEnd.get(Calendar.DAY_OF_YEAR) - 1);

			//装返回的日期集合容器
			List<String> DateList = new ArrayList<String>();

			// 每次循环给calBegin日期加一天,直到calBegin.getTime()时间等于dEnd
			while (calEnd.getTime().after(calBegin.getTime()))  {
				// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
				calBegin.add(Calendar.DAY_OF_MONTH, 1);
				DateList.add(format.format(calBegin.getTime()));
			}
			return DateList;
		} catch (ParseException e) {
			e.printStackTrace();
			return null;
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuckyNiuJY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值