Date工具类

获取当前时间

	/**
     * 获取当前时间
     *
     * @param dateformat 日期格式
     * @return Date 相应数据
     */
    public static String getNowTime(String dateformat) {
        try {
            Date now = new Date();
            SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);
            String nowTime = dateFormat.format(now);
            return nowTime;
        } catch (Exception e) {
            logger.error("getNowTime Exception = ", e);
        }
        return null;
    }

得到几天前的时间

	/**
	 * 得到几天前的时间
	 * 
	 * @param date 时间
	 * @param day  几天前
	 * @return Date 响应数据 
	 */
	public static Date getDateBefore(Date date, int day) {
		Calendar no = Calendar.getInstance();
		no.setTime(date);
		no.set(Calendar.DATE, no.get(Calendar.DATE) - day);
		return no.getTime();
	}

Date日期格式转为字符换

/**
     * 日期格式化成字符串,格式自定义
     * 
     * @param date 日期
     * @param pattern 日期格式
     * @return 响应数据
     */
    public static String date2String(Date date, String pattern) {
        try {
        	if(date != null){
        		// 使用已有的format
                if ("yyyy-MM-dd".equals(pattern)) {
                    SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd");
                    return sdf3.format(date);
                } else if ("yyyy-MM-dd HH:mm:ss".equals(pattern)) {
                    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    return sdf2.format(date);
                } else if ("yyyy-MM-dd HH:mm:ss.SSS".equals(pattern)) {
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
                    return sdf.format(date);
                }
                // 根据入参创建format
                else {
                    SimpleDateFormat format = new SimpleDateFormat(pattern);
                    return format.format(date);
                }
        	}
        } catch (Exception e) {
        	logger.error("日期格式化成字符串异常:", e);
        }
        return null;
    }

给指定日期添加天数

/**
     * 给定一个日期,添加天数
     * 
     * @param date 日期
     * @param addDays 增加天数
     * @return 响应数据
     */
    public static Date addDay(Date date, int addDays) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DAY_OF_MONTH, addDays);
        return calendar.getTime();
    }

给指定日期添加小时数

/**
     * 给定一个日期,添加小时数
     * 
     * @param date 日期
     * @param addHours 小时数
     * @return 响应数据
     */
    public static Date addHour(Date date, int addHours) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.HOUR_OF_DAY, addHours);
        return calendar.getTime();
    }

给指定日期添加分钟数

/**
     * 给定一个日期,添加分钟数
     * 
     * @param date 日期
     * @param minutes 分钟
     * @return 响应数据
     */
    public static Date addMinute(Date date, int minutes) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MINUTE, minutes);
        return calendar.getTime();
    }

获取时间是一年中的第几天

/**
     * 获取时间是一年中的第几天
     * 
     * @param date 日期
     * @return 响应数据
     */
    public static int getDayOfYear(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.DAY_OF_YEAR);
    }

获取时间是一天中的第几个小时

/**
     * 获取时间是一天中的第几个小时
     * 
     * @param date 日期
     * @return 响应数据
     */
    public static int getHourOfDay(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.HOUR_OF_DAY);
    }

得到两个日期间的间隔天数

/**
	 * 得到二个日期间的间隔天数
	 * @param sj1 日期
	 * @param sj2 日期
	 * @return 响应数据
	 */
	public static double getTwoDay(String sj1, String sj2) {
		SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
		double day = 0.5;
		try {
			java.util.Date date = myFormatter.parse(sj1);
			java.util.Date mydate = myFormatter.parse(sj2);
			day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000)+1;
			day = day < 1 ? 0.5 : day;
		} catch (Exception e) {
			return day;
		}
		return day;
	}

比较两个日期的大小

	/** 
	* 比较两个日期的大小 
	*/
	public static boolean compareDateTwo(String time1, String time2) {
		boolean b = false;
		SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");  
		try{
			Date date1 = ft.parse( time1 );   
			Date date2 = ft.parse( time2 ); 
			if(date1.getTime() > date2.getTime()){
				b = true;
			}
		}catch(ParseException e){
			e.printStackTrace();  
		}
		return b;
	}

获取随机日期

	/**
	 * 获取随机日期
	 * @param beginDate 起始日期,格式为:yyyy-MM-dd
	 * @param endDate 结束日期,格式为:yyyy-MM-dd
	 * @return 响应数据
	 */
	public static Date randomDate(String beginDate,String endDate){
		try {
			SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
			Date start = format.parse(beginDate);
			Date end = format.parse(endDate);
			
			if(start.getTime() >= end.getTime()){
				return null;
			}
			
			long date = random(start.getTime(),end.getTime());
			
			return new Date(date);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

检查一个日期字符串是否能正确转换成给定的格式

 /**
     * 检查一个日期字符串是否能正确转换成给定的格式
     * 
     * @param dateStr 日期字符串
     * @param pattern 日期格式 例如 "yyyy-MM-dd HH:mm:ss.SSS"
     * @return
     */
    public static boolean checkDateFormat(String dateStr, String pattern) {
        try {
            // 使用已有的format
            if ("yyyy-MM-dd".equals(pattern)) {
                SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd");
                sdf3.parse(dateStr);
            } else if ("yyyy-MM-dd HH:mm:ss".equals(pattern)) {
                SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                sdf2.parse(dateStr);
            } else if ("yyyy-MM-dd HH:mm:ss.SSS".equals(pattern)) {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
                sdf.parse(dateStr);
            }
            // 根据入参创建format
            else {
                SimpleDateFormat format = new SimpleDateFormat(pattern);
                format.parse(dateStr);
            }
        } catch (Exception e) {
        	logger.error("检查一个日期字符串是否能正确转换成给定的格式异常:", e);
            return false;
        }
        return true;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱编码的小梁

码农不易 感恩打赏!

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

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

打赏作者

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

抵扣说明:

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

余额充值