获取两个日期之间的天数/日期加时间/校验日期格式是否严格

/**
   * 获取两个日期之间的天数
   * @param startDateStr 开始时间
   * @param stopDateStr 结束时间
   * @return 相差天数
   * @throws ParseException
   */
  public static int getDatePoor(String startDateStr, String stopDateStr) throws ParseException {
    SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
    Date startDate = dft.parse(startDateStr);
    Date stopDate = dft.parse(stopDateStr);
    Calendar cal = Calendar.getInstance();
    cal.setTime(startDate);
    long startTime = cal.getTimeInMillis();
    cal.setTime(stopDate);
    long stopTime = cal.getTimeInMillis();
    // 天数 也可以获取小时、分钟、秒(上面格式化时间的格式需要对应)
    long betweenDays=(stopTime-startTime)/(1000*3600*24);
    return Integer.parseInt(String.valueOf(betweenDays)) + 1 ;
  }
/**
     * 时间加小时
     *
     * @param time 时间
     * @param hour 小时数
     * @return
     * @throws ParseException
     */
    public static String addDateTime(String time,int hour) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date receiveDate = DateUtils.parseDate(time, "yyyy-MM-dd HH:mm:ss");
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(receiveDate);
        calendar.add(Calendar.HOUR_OF_DAY, hour);
        time = sdf.format(calendar.getTime());
        return time;
    }

校验日期格式是否严格

/**
     * @Description: 校验时间(6位,年月日)格式 YYMMDD
     * @Param: [str]
     * @return: boolean
     */
    public static boolean checkDateInNumber6(String str) {
        if (!checkNumbersAndLength(str, TelProConstant.SIX)) {
            return false;
        }
        String year = String.valueOf(LocalDate.now().getYear()).substring(0, TelProConstant.TWO);
        String yy = str.substring(0, TelProConstant.TWO);
        String mm = str.substring(TelProConstant.TWO, TelProConstant.FOUR);
        String dd = str.substring(TelProConstant.FOUR);
        String dateStr = year + yy + mm + dd;
        SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd");
        try {
            sd.setLenient(false);
            //此处指定日期/时间解析是否不严格,在true是不严格,false时为严格
            sd.parse(dateStr);
        } catch (Exception e) {
            return false;
        }
        return true;
    }
// 获取一个月天数
    public static int getDaysOfMonth(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值