Skip to content

Latest commit

 

History

History
265 lines (244 loc) · 5.91 KB

about_time.md

File metadata and controls

265 lines (244 loc) · 5.91 KB

时间相关

将时间戳转为时间字符串

/**
 * 将时间戳转为时间字符串
 * <p>格式为yyyy-MM-dd HH:mm:ss
 */
public static String milliseconds2String(long milliseconds) {
    return milliseconds2String(milliseconds, DEFAULT_SDF);
}

/**
 * 将时间戳转为时间字符串
 * <p>格式为用户自定义
 */
public static String milliseconds2String(long milliseconds, SimpleDateFormat format) {
    return format.format(new Date(milliseconds));
}

将时间字符串转为时间戳

/**
 * 将时间字符串转为时间戳
 * <p>格式为yyyy-MM-dd HH:mm:ss
 */
public static long string2Milliseconds(String time) {
    return string2Milliseconds(time, DEFAULT_SDF);
}

/**
 * 将时间字符串转为时间戳
 * <p>格式为用户自定义
 */ 
public static long string2Milliseconds(String time, SimpleDateFormat format) {
    try {
        return format.parse(time).getTime();
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return -1;
}

将时间字符串转为Date类型

/**
 * 将时间字符串转为Date类型
 * <p>格式为yyyy-MM-dd HH:mm:ss
 */
public static Date string2Date(String formatDate) {
    return string2Date(formatDate, DEFAULT_SDF);
}

/**
 * 将时间字符串转为Date类型
 * <p>格式为用户自定义
 */
public static Date string2Date(String formatDate, SimpleDateFormat format) {
    return new Date(string2Milliseconds(formatDate, format));
}

将Date类型转为时间字符串

/**
 * 将Date类型转为时间字符串
 * <p>格式为yyyy-MM-dd HH:mm:ss
 */
public static String date2String(Date date) {
    return date2String(date, DEFAULT_SDF);
}

/**
 * 将Date类型转为时间字符串
 * <p>格式为用户自定义
 */
public static String date2String(Date date, SimpleDateFormat format) {
    return format.format(date);
}

将Date类型转为时间戳

/**
 * 将Date类型转为时间戳
 */
public static long date2Milliseconds(Date date) {
    return date.getTime();
}

将时间戳转为Date类型

/**
 * 将时间戳转为Date类型
 */
public static Date milliseconds2Date(long milliseconds) {
    return new Date(milliseconds);
}

毫秒时间戳单位转换(单位:unit)

/**
 * 毫秒时间戳单位转换(单位:unit)
 * <pre>
 * UNIT_MSEC:毫秒
 * UNIT_SEC :秒
 * UNIT_MIN :分
 * UNIT_HOUR:小时
 * UNIT_DAY :天
 * </pre>
 */
private static long milliseconds2Unit(long milliseconds, int unit) {
    switch (unit) {
        case UNIT_MSEC:
        case UNIT_SEC:
        case UNIT_MIN:
        case UNIT_HOUR:
        case UNIT_DAY:
            return Math.abs(milliseconds) / unit;
    }
    return -1;
}

获取两个时间差(单位:unit)

/**
 * 获取两个时间差(单位:unit)
 * <pre>
 * UNIT_MSEC:毫秒
 * UNIT_SEC :秒
 * UNIT_MIN :分
 * UNIT_HOUR:小时
 * UNIT_DAY :天
 * </pre>
 * <p>time1和time2格式都为yyyy-MM-dd HH:mm:ss
 */
public static long getIntervalTime(String time1, String time2, int unit) {
    return getIntervalTime(time1, time2, unit, DEFAULT_SDF);
}

/**
 * 获取两个时间差(单位:unit)
 * <pre>
 * UNIT_MSEC:毫秒
 * UNIT_SEC :秒
 * UNIT_MIN :分
 * UNIT_HOUR:小时
 * UNIT_DAY :天
 * </pre>
 * <p>time1和time2格式都为format
 */
public static long getIntervalTime(String time1, String time2, int unit, SimpleDateFormat for
    return milliseconds2Unit(string2Milliseconds(time1, format)
            - string2Milliseconds(time2, format), unit);
}

/**
 * 获取两个时间差(单位:unit)
 * <pre>
 * UNIT_MSEC:毫秒
 * UNIT_SEC :秒
 * UNIT_MIN :分
 * UNIT_HOUR:小时
 * UNIT_DAY :天
 * </pre>
 * <p>time1和time2都为Date
 */
public static long getIntervalTime(Date time1, Date time2, int unit) {
    return milliseconds2Unit(date2Milliseconds(time2) - date2Milliseconds(time1), unit);
}

获取当前时间

/**
 * 获取当前时间
 * <p>单位(毫秒)
 */
public static long getCurTimeMills() {
    return System.currentTimeMillis();
}

/**
 * 获取当前时间
 * <p>格式为yyyy-MM-dd HH:mm:ss
 */
public static String getCurTimeString() {
    return milliseconds2String(getCurTimeMills());
}

/**
 * 获取当前时间
 * <p>格式为用户自定义
 */
public static String getCurTimeString(SimpleDateFormat format) {
    return milliseconds2String(getCurTimeMills(), format);
}

/**
 * 获取当前时间
 * <p>Date类型
 */
public static Date getCurTimeDate() {
    return new Date();
}

获取与当前时间的差(单位:unit)

/**
 * 获取与当前时间的差(单位:unit)
 * <pre>
 * UNIT_MSEC:毫秒
 * UNIT_SEC :秒
 * UNIT_MIN :分
 * UNIT_HOUR:小时
 * UNIT_DAY :天
 * <p>time1和time2格式都为yyyy-MM-dd HH:mm:ss
 */
public static long getIntervalByNow(String time, int unit) {
    return getIntervalByNow(time, unit, DEFAULT_SDF);
}

/**
 * 获取与当前时间的差(单位:unit)
 * <pre>
 * UNIT_MSEC:毫秒
 * UNIT_SEC :秒
 * UNIT_MIN :分
 * UNIT_HOUR:小时
 * UNIT_DAY :天
 * <p>time1和time2格式都为format
 */
public static long getIntervalByNow(String time, int unit, SimpleDateFormat format) {
    return getIntervalTime(getCurTimeString(), time, unit, format);
}

/**
 * 获取与当前时间的差(单位:unit)
 * <pre>
 * UNIT_MSEC:毫秒
 * UNIT_SEC :秒
 * UNIT_MIN :分
 * UNIT_HOUR:小时
 * UNIT_DAY :天
 * <p>time1和time2格式都为format
 */
public static long getIntervalByNow(Date time, int unit) {
    return getIntervalTime(getCurTimeDate(), time, unit);
}

判断闰年

/**
 * 判断闰年
 */
public static boolean isLeapYear(int year) {
    return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
}