时间工具类

自己去建一个时间工具类

下面这些是类中的方法:      

 public static final String ISO_DATE_FORMAT = "yyyyMMdd";
    public static final String ISO_EXPANDED_DATE_FORMAT = "yyyy-MM-dd";

    private static final TimeZone GMT = TimeZone.getTimeZone("GMT");

        

    /**
     * yyyy-MM-dd HH:mm:ss
     */
    public static final String DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";


    private static boolean LENIENT_DATE = false;

两个时间(yyyy-MM-dd格式)相差多少天

public static final int daysBetween(Date early, Date late) {
    java.util.GregorianCalendar calst = new java.util.GregorianCalendar();
    java.util.GregorianCalendar caled = new java.util.GregorianCalendar();
    calst.setTime(early);
    caled.setTime(late);

    calst.set(java.util.GregorianCalendar.HOUR_OF_DAY, 0);
    calst.set(java.util.GregorianCalendar.MINUTE, 0);
    calst.set(java.util.GregorianCalendar.SECOND, 0);
    caled.set(java.util.GregorianCalendar.HOUR_OF_DAY, 0);
    caled.set(java.util.GregorianCalendar.MINUTE, 0);
    caled.set(java.util.GregorianCalendar.SECOND, 0);

    int days = ((int) (caled.getTime().getTime() / 1000) - (int) (calst.getTime().getTime() / 1000)) / 3600 / 24;
    return days;
}

 /**
 * 两个时间(yyyy-MM-dd格式)相差多少天
 * @param smdate
 * @param bdate
 * @return
 * @throws ParseException
 */
public static int daysBetween(String smdate, String bdate){
    long between_days = 0;
    try {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar cal = Calendar.getInstance();
        cal.setTime(sdf.parse(smdate));
        long time1 = cal.getTimeInMillis();
        cal.setTime(sdf.parse(bdate));
        long time2 = cal.getTimeInMillis();
        if(time2>time1){
            between_days = (time2 - time1) / (1000 * 3600 * 24);
        }else{
            between_days = (time1 - time2) / (1000 * 3600 * 24);
        }
    } catch (Exception e) {
        e.getStackTrace();
    }
    return Integer.parseInt(String.valueOf(between_days));
}

/** 字符串日期格式
  * @param dateText
  * @param format
  * @param lenient
  * @return
*/
public static Date stringToDate(String dateText, String format, boolean lenient) {  
if (dateText == null) {

        return null;
    }

    DateFormat df = null;

    try {

        if (format == null) {
            df = new SimpleDateFormat();
        } else {
            df = new SimpleDateFormat(format);
        }
        df.setLenient(false);
        return df.parse(dateText);
    } catch (ParseException e) {

        return null;
    }
}

/**
 * 字符串日期格式
 *
 * @param dateString
 * @param format
 * @return
 */
public static Date stringToDate(String dateString, String format) {

    return stringToDate(dateString, format, LENIENT_DATE);
}

/**
 * 字符串日期格式
 *
 * @param dateString
 * @return
 */
public static Date stringToDate(String dateString) {

    return stringToDate(dateString, ISO_EXPANDED_DATE_FORMAT, LENIENT_DATE);
}

/**
 * 日期格式转字符串
 *
 * @param date
 * @param pattern
 * @return
 */
public static String dateToString(Date date, String pattern) {

    if (date == null) {

        return null;
    }

    try {

        SimpleDateFormat sfDate = new SimpleDateFormat(pattern);
        sfDate.setLenient(false);

        return sfDate.format(date);
    } catch (Exception e) {

        return null;
    }
}

/**
 * @param date
 * @return
 */
public static String dateToString(Date date) {
    return dateToString(date, ISO_EXPANDED_DATE_FORMAT);
}
/**
  * @param date
  * @return
 */
public static String dateToStringWithTime(Date date) {
    return dateToString(date, DATETIME_PATTERN);
}

/**
    获取当前时间
 * @return
 */
public static Date getCurrentDateTime() {
    java.util.Calendar calNow = java.util.Calendar.getInstance();
    java.util.Date dtNow = calNow.getTime();

    return dtNow;
}

/**
 * @param pattern
 * @return
 */
public static String getCurrentDateString(String pattern) {
    return dateToString(getCurrentDateTime(), pattern);
}

/**
 * @return
 */
public static String getCurrentDateString() {
    return dateToString(getCurrentDateTime(), ISO_EXPANDED_DATE_FORMAT);
}

/**
 * 日期按天数增加
 * @param date
 * @param days
 * @return
 */
public static Date dateIncreaseByDay(Date date, int days) {

    Calendar cal = GregorianCalendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.DATE, days);

    return cal.getTime();
}

/**
 * 日期按月份增加
 * @param date
 * @param mnt
 * @return
 */
public static Date dateIncreaseByMonth(Date date, int mnt) {

    Calendar cal = GregorianCalendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.MONTH, mnt);

    return cal.getTime();
}

/**
 * 日期按年份增加
 * @param date
 * @param mnt
 * @return
 */
public static Date dateIncreaseByYear(Date date, int mnt) {

    Calendar cal = GregorianCalendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.YEAR, mnt);

    return cal.getTime();
}
/**
 * 日期按年份增加
 * @param date
 * @param mnt
 * @return
 */
public static Date addYear(Date date, int count) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(1, count);
        return c.getTime();
}

/**
 * 日期按天数增加
 * @param date
 * @param days
 * @return
 */
public static String dateIncreaseByDay(String date, int days) {
    return dateIncreaseByDay(date, ISO_DATE_FORMAT, days);
}
/**
 * 增加月份
 * @param date
 * @param days
 * @return
 */
public static Date addMonth(Date date, int count) {
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    c.add(2, count);
    return c.getTime();
}
/**
 * 增加天数
 * @param date
 * @param days
 * @return
 */
public static Date addDay(Date date, int count) {
    return new Date(date.getTime() + 86400000L * (long) count);
}
/**
 * 日期按天份增加
 * @param date
 * @param fmt
 * @param days
 * @return
 */
public static String dateIncreaseByDay(String date, String fmt, int days) {
    return dateIncrease(date, fmt, Calendar.DATE, days);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值