DateUtils.java 5.26 KB
package com.zteits.park.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * Copyright: Copyright (c) 2020 zteits
 *
 * @ClassName: DateUtils.java
 * @Description:
 * @version: v1.0.0
 * @author: jiawj
 * @date: 2021年03月24日 18:03
 */
public class DateUtils {

    public static boolean sameDate(Date d1, Date d2){
        SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
        //fmt.setTimeZone(new TimeZone()); // 如果需要设置时间区域,可以在这里设置
        return fmt.format(d1).equals(fmt.format(d2));
    }

    public static String dateToString(Date date) {
        SimpleDateFormat sformat = new SimpleDateFormat("HH:mm:ss");//日期格式
        String tiem = sformat.format(date);
        return tiem;
    }

    public static String dateToStringForSSS(Date date) {
        SimpleDateFormat sformat = new SimpleDateFormat("HH:mm:ss.SSS");//日期格式
        String tiem = sformat.format(date);
        return tiem;
    }

    public static String dateToTime(Date date) {
        SimpleDateFormat sformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//日期格式
        String tiem = sformat.format(date);
        return tiem;
    }

    public static String dateToDay(Date date) {
        SimpleDateFormat sformat = new SimpleDateFormat("yyyy-MM-dd");//日期格式
        String tiem = sformat.format(date);
        return tiem;
    }


    public static boolean sameJudgeDate(Date todayTime, String startTime,String endTime) throws ParseException {
        String yMDTime = dateToDay(todayTime);
        String startFormat=yMDTime+" "+startTime;
        String endFormat=yMDTime+" "+endTime;
        int flag = startTime.compareTo(endTime);
        if(flag >0){
            Date d = new Date();
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            String date = format.format(d);
            System.out.println("现在的日期是:" + date);

            Calendar ca = Calendar.getInstance();
            ca.add(Calendar.DATE, 1);// 1为增加的天数,可以改变的
            d = ca.getTime();
            String backTime = format.format(d);
            endFormat = backTime +" "+endTime;
        }
        SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        long start=sim.parse(startFormat).getTime();
        long end=sim.parse(endFormat).getTime();
        long now=sim.parse(dateToTime(todayTime)).getTime();

        if(now>=start&&now<end){
            System.out.println("时间在"+start+"-"+end+"之内");
            return true;
        }else{
            System.out.println("时间在"+start+"-"+end+"之外");
            return false;
        }
    }

    /**
       * 判断时间是否在时间段内 *
       * @param date
       * 当前时间 yyyy-MM-dd HH:mm:ss
       * @param strDateBegin
       * 开始时间 00:00:00
       * @param strDateEnd
       * 结束时间 00:05:00
       * @return
       */
 public static boolean isInDate(Date date, String strDateBegin, String strDateEnd) {

  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  String strDate = sdf.format(date);
  // 截取当前时间时分秒
     int strDateH = Integer.parseInt(strDate.substring(11, 13));
     int strDateM = Integer.parseInt(strDate.substring(14, 16));
     int strDateS = Integer.parseInt(strDate.substring(17, 19));
     // 截取开始时间时分秒
     int strDateBeginH = Integer.parseInt(strDateBegin.substring(0, 2));
     int strDateBeginM = Integer.parseInt(strDateBegin.substring(3, 5));
     int strDateBeginS = Integer.parseInt(strDateBegin.substring(6, 8));
     // 截取结束时间时分秒
     int strDateEndH = Integer.parseInt(strDateEnd.substring(0, 2));
     int strDateEndM = Integer.parseInt(strDateEnd.substring(3, 5));
     int strDateEndS = Integer.parseInt(strDateEnd.substring(6, 8));
     if ((strDateH >= strDateBeginH && strDateH <= strDateEndH)) {
         // 当前时间小时数在开始时间和结束时间小时数之间
     if (strDateH > strDateBeginH && strDateH < strDateEndH) {
         return true;
         // 当前时间小时数等于开始时间小时数,分钟数在开始和结束之间
     } else if (strDateH == strDateBeginH && strDateM >= strDateBeginM&& strDateM <= strDateEndM) {
         return true;
         // 当前时间小时数等于开始时间小时数,分钟数等于开始时间分钟数,秒数在开始和结束之间
     } else if (strDateH == strDateBeginH && strDateM == strDateBeginM&& strDateS >= strDateBeginS && strDateS <= strDateEndS) {
         return true;
     }
     // 当前时间小时数大等于开始时间小时数,等于结束时间小时数,分钟数小等于结束时间分钟数
     else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM <= strDateEndM) {
         return true;
         // 当前时间小时数大等于开始时间小时数,等于结束时间小时数,分钟数等于结束时间分钟数,秒数小等于结束时间秒数
     } else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM == strDateEndM && strDateS <= strDateEndS) {
         return true;
     } else {
         return false;
      }
     }else {
         return false;
     }
    }



}