继续了解common-lang3中DateUtils工具类

祝叶五
2023-12-01

在之前的文章中我们已经学习了DateUtils工具类中的一些方法的用法,接下来我们更深入的了解其他的方法

  • 返回一个Calendar,效果为得到一个日期类别(年、月、日、时、分、秒)的数字,例如:d为2017年3月21日;则:DateUtils.ceiling(d, Calendar.MONTH)是2017年4月1日0时0分0秒
		Calendar c = DateUtils.ceiling(Calendar.getInstance(), Calendar.DATE);
		System.out.println(DateFormatUtils.format(c, "yyyy-MM-dd HH:mm:ss"));
  • 同上,区别为参数和返回值为Date类型
		Date date = DateUtils.ceiling(new Date(), Calendar.MONTH);
		System.out.println(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
  • 同上,区别为参数为Object类型。注意该Object对象需要和Date、Calendar对象任一转换。
		Object date1 = new Date();
		Date date2= DateUtils.ceiling(date1, Calendar.MONTH);
		System.out.println(DateFormatUtils.format(date2, "yyyy-MM-dd HH:mm:ss"));

注:可以通过上面的方法获取下一年的1月1号,下一月的第一天,下一天的凌晨,下一小时,下一分钟,下一秒钟等等。

  • 截取日期到指定的年月日时分秒
		Calendar c = DateUtils.truncate(Calendar.getInstance(), Calendar.DATE);
		System.out.println(DateFormatUtils.format(c, "yyyy-MM-dd HH:mm:ss"));
		//同上
		Date d = DateUtils.truncate(new Date(), Calendar.MONTH);
		System.out.println(DateFormatUtils.format(d, "yyyy-MM-dd HH:mm:ss"));
		//同上
		Object date = new Date();
		Date d1 = DateUtils.truncate(date, Calendar.YEAR);
		System.out.println(DateFormatUtils.format(d1, "yyyy-MM-dd HH:mm:ss"));
		//比较截取到日期指定的年月日时分秒的日期的值是的大小
		int compare = DateUtils.truncatedCompareTo(new Date(), new Date(), Calendar.MILLISECOND);
		//同上
		int compare1 = DateUtils.truncatedCompareTo(Calendar.getInstance(), Calendar.getInstance(), Calendar.MONTH);
		//比较截取到日期指定的年月日时分秒的日期的值是否相等
		boolean flag = DateUtils.truncatedEquals(new Date(), new Date(), Calendar.MILLISECOND);
		//同上
		boolean flag1 = DateUtils.truncatedEquals(Calendar.getInstance(), Calendar.getInstance(), Calendar.MONTH);
  • 四舍五入
		//当时间是2019-02-20 00:00:00 ,结果是:2019-01-01 00:00:00
		Date date = DateUtils.round(new Date(), Calendar.YEAR);
  • 获取指定日期的天数
		//获取指定日期过去了多少天
		long num = DateUtils.getFragmentInDays(new Date(), Calendar.MONTH);
  • 常用日期判断
    isSameDay(final Date date1, final Date date2):判断两个时间是否是同一天;
    isSameInstant(final Date date1, final Date date2):判断两个时间是否为同一毫秒
 类似资料: