zoukankan      html  css  js  c++  java
  • DateUtil 提供一些常用的时间想法的方法

    package com.opslab.util;


    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    /**
    * @author:Neptune
    * @Description:DateUtil 提供一些常用的时间想法的方法
    */
    public final class DateUtil {

    //日期时间类型格式
    private static final String DATETIME_FORMAT = OpslabConfig.DATETIME_FORMAT;

    //日期类型格式
    private static final String DATE_FORMAT = OpslabConfig.DATE_FORMAT;

    //时间类型的格式
    private static final String TIME_FORMAT = OpslabConfig.TIME_FORMAT;

    //注意SimpleDateFormat不是线程安全的
    private static ThreadLocal<SimpleDateFormat> ThreadDateTime = new ThreadLocal<SimpleDateFormat>();
    private static ThreadLocal<SimpleDateFormat> ThreadDate = new ThreadLocal<SimpleDateFormat>();
    private static ThreadLocal<SimpleDateFormat> ThreadTime = new ThreadLocal<SimpleDateFormat>();

    private static SimpleDateFormat DateTimeInstance() {
    SimpleDateFormat df = ThreadDateTime.get();
    if (df == null) {
    df = new SimpleDateFormat(DATETIME_FORMAT);
    ThreadDateTime.set(df);
    }
    return df;
    }

    private static SimpleDateFormat DateInstance() {
    SimpleDateFormat df = ThreadDate.get();
    if (df == null) {
    df = new SimpleDateFormat(DATE_FORMAT);
    ThreadDate.set(df);
    }
    return df;
    }

    private static SimpleDateFormat TimeInstance() {
    SimpleDateFormat df = ThreadTime.get();
    if (df == null) {
    df = new SimpleDateFormat(TIME_FORMAT);
    ThreadTime.set(df);
    }
    return df;
    }


    /**
    * 获取当前日期时间
    *
    * @return 返回当前时间的字符串值
    */
    public static String currentDateTime() {
    return DateTimeInstance().format(new Date());
    }

    /**
    * 将指定的时间格式化成出返回
    *
    * @param date
    * @return
    */
    public static String dateTime(Date date) {
    return DateTimeInstance().format(date);
    }

    /**
    * 将指定的字符串解析为时间类型
    *
    * @param datestr
    * @return
    * @throws ParseException
    */
    public static Date dateTime(String datestr) throws ParseException {
    return DateTimeInstance().parse(datestr);
    }

    /**
    * 获取当前的日期
    *
    * @return
    */
    public static String currentDate() {
    return DateInstance().format(new Date());
    }

    /**
    * 将指定的时间格式化成出返回
    *
    * @param date
    * @return
    */
    public static String date(Date date) {
    return DateInstance().format(date);
    }

    /**
    * 将指定的字符串解析为时间类型
    *
    * @param dateStr
    * @return
    * @throws ParseException
    */
    public static Date date(String dateStr) throws ParseException {
    return DateInstance().parse(dateStr);
    }

    /**
    * 获取当前的时间
    *
    * @return
    */
    public static String currentTime() {
    return TimeInstance().format(new Date());
    }

    /**
    * 讲指定的时间格式化成出返回
    *
    * @param date
    * @return
    */
    public static String time(Date date) {
    return TimeInstance().format(date);
    }

    /**
    * 将指定的字符串解析为时间类型
    *
    * @param dateStr
    * @return
    * @throws ParseException
    */
    public static Date time(String dateStr) throws ParseException {
    return TimeInstance().parse(dateStr);
    }


    /**
    * 在当前时间的基础上加或减去year年
    *
    * @param year
    * @return
    */
    public static Date year(int year) {
    java.util.Calendar Cal = java.util.Calendar.getInstance();
    Cal.setTime(new Date());
    Cal.add(Calendar.YEAR, year);
    return Cal.getTime();
    }

    /**
    * 在指定的时间上加或减去几年
    *
    * @param date
    * @param year
    * @return
    */
    public static Date year(Date date, int year) {
    java.util.Calendar Cal = java.util.Calendar.getInstance();
    Cal.setTime(date);
    Cal.add(java.util.Calendar.YEAR, year);
    return Cal.getTime();
    }

    /**
    * 在当前时间的基础上加或减去几月
    *
    * @param month
    * @return
    */
    public static Date month(int month) {
    java.util.Calendar Cal = java.util.Calendar.getInstance();
    Cal.setTime(new Date());
    Cal.add(Calendar.MONTH, month);
    return Cal.getTime();
    }

    /**
    * 在指定的时间上加或减去几月
    *
    * @param date
    * @param month
    * @return
    */
    public static Date month(Date date, int month) {
    java.util.Calendar Cal = java.util.Calendar.getInstance();
    Cal.setTime(date);
    Cal.add(java.util.Calendar.MONTH, month);
    return Cal.getTime();
    }

    /**
    * 在当前时间的基础上加或减去几天
    *
    * @param day
    * @return
    */
    public static Date day(int day) {
    java.util.Calendar Cal = java.util.Calendar.getInstance();
    Cal.setTime(new Date());
    Cal.add(Calendar.DAY_OF_YEAR, day);
    return Cal.getTime();
    }

    /**
    * 在指定的时间上加或减去几天
    *
    * @param date
    * @param day
    * @return
    */
    public static Date day(Date date, int day) {
    java.util.Calendar Cal = java.util.Calendar.getInstance();
    Cal.setTime(date);
    Cal.add(java.util.Calendar.DAY_OF_YEAR, day);
    return Cal.getTime();
    }

    /**
    * 在当前时间的基础上加或减去几小时-支持浮点数
    *
    * @param hour
    * @return
    */
    public static Date hour(float hour) {
    java.util.Calendar Cal = java.util.Calendar.getInstance();
    Cal.setTime(new Date());
    Cal.add(java.util.Calendar.MINUTE, (int) (hour * 60));
    return Cal.getTime();
    }

    /**
    * 在制定的时间上加或减去几小时-支持浮点数
    *
    * @param date
    * @param hour
    * @return
    */
    public static Date hour(Date date, float hour) {
    java.util.Calendar Cal = java.util.Calendar.getInstance();
    Cal.setTime(date);
    Cal.add(java.util.Calendar.MINUTE, (int) (hour * 60));
    return Cal.getTime();
    }

    /**
    * 在当前时间的基础上加或减去几分钟
    *
    * @param minute
    * @return
    */
    public static Date minute(int minute) {
    java.util.Calendar Cal = java.util.Calendar.getInstance();
    Cal.setTime(new Date());
    Cal.add(java.util.Calendar.MINUTE, minute);
    return Cal.getTime();
    }

    /**
    * 在制定的时间上加或减去几分钟
    *
    * @param date
    * @param minute
    * @return
    */
    public static Date minute(Date date, int minute) {
    java.util.Calendar Cal = java.util.Calendar.getInstance();
    Cal.setTime(date);
    Cal.add(java.util.Calendar.MINUTE, minute);
    return Cal.getTime();
    }


    /**
    * 判断字符串是否为日期字符串
    *
    * @param date 日期字符串
    * @return true or false
    */
    public static boolean isDate(String date) {
    try {
    DateTimeInstance().parse(date);
    return true;
    } catch (ParseException e) {
    e.printStackTrace();
    }
    return false;
    }


    /**
    * 时间date1和date2的时间差-单位秒
    *
    * @param date1
    * @param date2
    * @return 秒
    */
    public static long subtract(Date date1, Date date2) {
    long cha = (date2.getTime() - date1.getTime()) / 1000;
    return cha;
    }

    /**
    * 时间date1和date2的时间差-单位秒
    *
    * @param date1
    * @param date2
    * @return 秒
    */
    public static long subtract(String date1, String date2) {
    long rs = 0;
    try {
    Date start = DateTimeInstance().parse(date1);
    Date end = DateTimeInstance().parse(date2);
    long cha = (end.getTime() - start.getTime()) / 1000;
    rs = cha;
    } catch (ParseException e) {
    e.printStackTrace();
    }
    return rs;
    }


    /**
    * 时间date1和date2的时间差 -单位分钟
    *
    * @param date1
    * @param date2
    * @return 分钟
    */
    public static int subtractMinute(String date1, String date2) {
    int rs = 0;
    try {
    Date start = DateTimeInstance().parse(date1);
    Date end = DateTimeInstance().parse(date2);
    long cha = (end.getTime() - start.getTime()) / 1000;
    rs = (int) cha / (60);
    } catch (ParseException e) {
    e.printStackTrace();
    }
    return rs;
    }

    /**
    * 时间date1和date2的时间差-单位分钟
    *
    * @param date1
    * @param date2
    * @return 分钟
    */
    public static int subtractMinute(Date date1, Date date2) {
    long cha = date2.getTime() - date1.getTime();
    return (int) cha / (1000 * 60);
    }

    /**
    * 时间date1和date2的时间差-单位小时
    *
    * @param date1
    * @param date2
    * @return 小时
    */
    public static int subtractHour(Date date1, Date date2) {
    long cha = (date2.getTime() - date1.getTime()) / 1000;
    return (int) cha / (60 * 60);
    }

    /**
    * 时间date1和date2的时间差-单位小时
    *
    * @param date1
    * @param date2
    * @return 小时
    */
    public static int subtractHour(String date1, String date2) {
    int rs = 0;
    try {
    Date start = DateTimeInstance().parse(date1);
    Date end = DateTimeInstance().parse(date2);
    long cha = (end.getTime() - start.getTime()) / 1000;
    rs = (int) cha / (60 * 60);
    } catch (ParseException e) {
    e.printStackTrace();
    }
    return rs;
    }


    /**
    * 时间date1和date2的时间差-单位天
    *
    * @param date1
    * @param date2
    * @return 天
    */
    public static int subtractDay(String date1, String date2) {
    int rs = 0;
    try {
    Date start = DateTimeInstance().parse(date1);
    Date end = DateTimeInstance().parse(date2);
    long sss = (end.getTime() - start.getTime()) / 1000;
    rs = (int) sss / (60 * 60 * 24);
    } catch (ParseException e) {
    e.printStackTrace();
    }
    return rs;
    }

    /**
    * 时间date1和date2的时间差-单位天
    *
    * @param date1
    * @param date2
    * @return 天
    */
    public static int subtractDay(Date date1, Date date2) {
    long cha = date2.getTime() - date1.getTime();
    return (int) cha / (1000 * 60 * 60 * 24);
    }

    /**
    * 时间date1和date2的时间差-单位月
    *
    * @param date1
    * @param date2
    * @return 月
    */
    public static int subtractMonth(String date1, String date2) {
    int result;
    Calendar c1 = Calendar.getInstance();
    Calendar c2 = Calendar.getInstance();
    try {
    c1.setTime(DateInstance().parse(date1));
    c2.setTime(DateInstance().parse(date2));
    int year1 = c1.get(Calendar.YEAR);
    int month1 = c1.get(Calendar.MONTH);
    int year2 = c2.get(Calendar.YEAR);
    int month2 = c2.get(Calendar.MONTH);
    if (year1 == year2) {
    result = month2 - month1;
    } else {
    result = 12 * (year2 - year1) + month2 - month1;
    }
    } catch (ParseException e) {
    e.printStackTrace();
    result = -1;
    }
    return result;
    }

    /**
    * 时间date1和date2的时间差-单位月
    *
    * @param date1
    * @param date2
    * @return 月
    */
    public static int subtractMonth(Date date1, Date date2) {
    int result;
    Calendar c1 = Calendar.getInstance();
    Calendar c2 = Calendar.getInstance();
    c1.setTime(date1);
    c2.setTime(date2);
    int year1 = c1.get(Calendar.YEAR);
    int month1 = c1.get(Calendar.MONTH);
    int year2 = c2.get(Calendar.YEAR);
    int month2 = c2.get(Calendar.MONTH);
    if (year1 == year2) {
    result = month2 - month1;
    } else {
    result = 12 * (year2 - year1) + month2 - month1;
    }
    return result;
    }

    /**
    * 时间date1和date2的时间差-单位年
    *
    * @param date1
    * @param date2
    * @return 年
    */
    public static int subtractYear(String date1, String date2) {
    int result;
    Calendar c1 = Calendar.getInstance();
    Calendar c2 = Calendar.getInstance();
    try {
    c1.setTime(DateInstance().parse(date1));
    c2.setTime(DateInstance().parse(date2));
    int year1 = c1.get(Calendar.YEAR);
    int year2 = c2.get(Calendar.YEAR);
    result = year2 - year1;
    } catch (ParseException e) {
    e.printStackTrace();
    result = -1;
    }
    return result;
    }

    /**
    * 时间date1和date2的时间差-单位年
    *
    * @param date1
    * @param date2
    * @return 年
    */
    public static int subtractYear(Date date1, Date date2) {
    int result;
    Calendar c1 = Calendar.getInstance();
    Calendar c2 = Calendar.getInstance();
    c1.setTime(date1);
    c2.setTime(date2);
    int year1 = c1.get(Calendar.YEAR);
    int year2 = c2.get(Calendar.YEAR);
    result = year2 - year1;
    return result;
    }

    /**
    * 获取俩个时间的查结果用时秒表示
    *
    * @param date1
    * @param date2
    * @return 几小时:几分钟:几秒钟
    * @Summary:此处可以讲计算结果包装成一个结构体返回便于格式化
    */
    public static String subtractTime(String date1, String date2) {
    String result = "";
    try {
    Date start = DateTimeInstance().parse(date1);
    Date end = DateTimeInstance().parse(date2);
    long sss = (end.getTime() - start.getTime()) / 1000;
    int hh = (int) sss / (60 * 60);
    int mm = (int) (sss - hh * 60 * 60) / (60);
    int ss = (int) (sss - hh * 60 * 60 - mm * 60);
    result = hh + ":" + mm + ":" + ss;
    } catch (ParseException e) {
    e.printStackTrace();
    }
    return result;
    }

    /**
    * 获取俩个时间的查结果用时秒表示
    *
    * @param date1
    * @param date2
    * @return 几天-几小时:几分钟:几秒钟
    * @Summary:此处可以讲计算结果包装成一个结构体返回便于格式化
    */
    public static String subtractDate(String date1, String date2) {
    String result = "";
    try {
    Date start = DateTimeInstance().parse(date1);
    Date end = DateTimeInstance().parse(date2);
    long sss = (end.getTime() - start.getTime()) / 1000;
    int dd = (int) sss / (60 * 60 * 24);
    int hh = (int) (sss - dd * 60 * 60 * 24) / (60 * 60);
    int mm = (int) (sss - dd * 60 * 60 * 24 - hh * 60 * 60) / (60);
    int ss = (int) (sss - dd * 60 * 60 * 24 - hh * 60 * 60 - mm * 60);
    result = dd + "-" + hh + ":" + mm + ":" + ss;
    } catch (ParseException e) {
    e.printStackTrace();
    }
    return result;
    }

    /**
    * 获取俩个时间之前的相隔的天数
    *
    * @param startTime
    * @param endTime
    * @return
    * @throws ParseException
    */
    public static int subDay(Date startTime, Date endTime) {
    int days = 0;
    Calendar can1 = Calendar.getInstance();
    can1.setTime(startTime);
    Calendar can2 = Calendar.getInstance();
    can2.setTime(endTime);
    int year1 = can1.get(Calendar.YEAR);
    int year2 = can2.get(Calendar.YEAR);

    Calendar can = null;
    if (can1.before(can2)) {
    days -= can1.get(Calendar.DAY_OF_YEAR);
    days += can2.get(Calendar.DAY_OF_YEAR);
    can = can1;
    } else {
    days -= can2.get(Calendar.DAY_OF_YEAR);
    days += can1.get(Calendar.DAY_OF_YEAR);
    can = can2;
    }
    for (int i = 0; i < Math.abs(year2 - year1); i++) {
    days += can.getActualMaximum(Calendar.DAY_OF_YEAR);
    can.add(Calendar.YEAR, 1);
    }

    return days;
    }

    /**
    * 获取俩个时间之前的相隔的天数
    *
    * @param startTime
    * @param endTime
    * @return
    * @throws ParseException
    */
    public static int subDay(String startTime, String endTime) {
    int days = 0;
    try {
    Date date1 = DateInstance().parse(DateInstance().format(DateTimeInstance().parse(startTime)));
    Date date2 = DateInstance().parse(DateInstance().format(DateTimeInstance().parse(endTime)));
    Calendar can1 = Calendar.getInstance();
    can1.setTime(date1);
    Calendar can2 = Calendar.getInstance();
    can2.setTime(date2);
    int year1 = can1.get(Calendar.YEAR);
    int year2 = can2.get(Calendar.YEAR);

    Calendar can = null;
    if (can1.before(can2)) {
    days -= can1.get(Calendar.DAY_OF_YEAR);
    days += can2.get(Calendar.DAY_OF_YEAR);
    can = can1;
    } else {
    days -= can2.get(Calendar.DAY_OF_YEAR);
    days += can1.get(Calendar.DAY_OF_YEAR);
    can = can2;
    }
    for (int i = 0; i < Math.abs(year2 - year1); i++) {
    days += can.getActualMaximum(Calendar.DAY_OF_YEAR);
    can.add(Calendar.YEAR, 1);
    }

    } catch (ParseException e) {
    e.printStackTrace();
    }
    return days;
    }

    /**
    * 返回俩个时间在时间段(例如每天的08:00-18:00)的时长-单位秒
    *
    * @param startDate
    * @param endDate
    * @param timeBurst 只就按该时间段内的08:00-18:00时长
    * @return 计算后的秒数
    * @throws ParseException
    * @summary 格式错误返回0
    */
    public static long subtimeBurst(String startDate, String endDate, String timeBurst)
    throws ParseException {
    Date start = DateTimeInstance().parse(startDate);
    Date end = DateTimeInstance().parse(endDate);
    return subtimeBurst(start, end, timeBurst);
    }

    /**
    * 返回俩个时间在时间段(例如每天的08:00-18:00)的时长-单位秒
    *
    * @param startDate
    * @param endDate
    * @param timeBurst 只就按该时间段内的08:00-18:00时长
    * @return 计算后的秒数
    * @throws ParseException
    */
    public static long subtimeBurst(Date startDate, Date endDate, String timeBurst)
    throws ParseException {
    long second = 0;
    Pattern p = Pattern.compile("^\d{2}:\d{2}-\d{2}:\d{2}");
    Matcher m = p.matcher(timeBurst);
    boolean falg = false;
    if (startDate.after(endDate)) {
    Date temp = startDate;
    startDate = endDate;
    endDate = temp;
    falg = true;
    }
    if (m.matches()) {
    String[] a = timeBurst.split("-");
    int day = subDay(startDate, endDate);
    if (day > 0) {
    long firstMintues = 0;
    long lastMintues = 0;
    long daySecond = 0;
    String strDayStart = DateInstance().format(startDate) + " " + a[0] + ":00";
    String strDayEnd = DateInstance().format(startDate) + " " + a[1] + ":00";
    Date dayStart = DateTimeInstance().parse(strDayStart);
    Date dayEnd = DateTimeInstance().parse(strDayEnd);
    daySecond = subtract(dayStart, dayEnd);
    if ((startDate.after(dayStart) || startDate.equals(dayStart))
    && startDate.before(dayEnd)) {
    firstMintues = (dayEnd.getTime() - startDate.getTime()) / 1000;
    } else if (startDate.before(dayStart)) {
    firstMintues = (dayEnd.getTime() - dayStart.getTime()) / 1000;
    }
    dayStart = DateTimeInstance().parse(DateInstance().format(endDate) + " " + a[0] + ":00");
    dayEnd = DateTimeInstance().parse(DateInstance().format(endDate) + " " + a[1] + ":00");
    if (endDate.after(dayStart) && (endDate.before(dayEnd) || endDate.equals(dayEnd))) {
    lastMintues = (endDate.getTime() - dayStart.getTime()) / 1000;
    } else if (endDate.after(dayEnd)) {
    lastMintues = (dayEnd.getTime() - dayStart.getTime()) / 1000;
    }
    //第一天的秒数 + 最好一天的秒数 + 天数*全天的秒数
    second = firstMintues + lastMintues;
    second += (day - 1) * daySecond;
    } else {
    String strDayStart = DateInstance().format(startDate) + " " + a[0] + ":00";
    String strDayEnd = DateInstance().format(startDate) + " " + a[1] + ":00";
    Date dayStart = DateTimeInstance().parse(strDayStart);
    Date dayEnd = DateTimeInstance().parse(strDayEnd);
    if ((startDate.after(dayStart) || startDate.equals(dayStart))
    && startDate.before(dayEnd) && endDate.after(dayStart)
    && (endDate.before(dayEnd) || endDate.equals(dayEnd))) {
    second = (endDate.getTime() - startDate.getTime()) / 1000;
    } else {
    if (startDate.before(dayStart)) {
    if (endDate.before(dayEnd)) {
    second = (endDate.getTime() - dayStart.getTime()) / 1000;
    } else {
    second = (dayEnd.getTime() - dayStart.getTime()) / 1000;
    }
    }
    if (startDate.after(dayStart)) {
    if (endDate.before(dayEnd)) {
    second = (endDate.getTime() - startDate.getTime()) / 1000;
    } else {
    second = (dayEnd.getTime() - startDate.getTime()) / 1000;
    }
    }
    }
    if ((startDate.before(dayStart) && endDate.before(dayStart))
    || startDate.after(dayEnd) && endDate.after(dayEnd)) {
    second = 0;
    }
    }
    } else {
    second = (endDate.getTime() - startDate.getTime()) / 1000;
    }
    if (falg) {
    second = Long.parseLong("-" + second);
    }
    return second;
    }

    /**
    * 时间Date在时间段(例如每天的08:00-18:00)上增加或减去second秒
    *
    * @param date
    * @param second
    * @param timeBurst
    * @return 计算后的时间
    * @Suumary 指定的格式错误后返回原数据
    */
    public static Date calculate(String date, int second, String timeBurst) {
    Date start = null;
    try {
    start = DateTimeInstance().parse(date);
    return calculate(start, second, timeBurst);
    } catch (ParseException e) {
    e.printStackTrace();
    }
    return new Date();
    }

    /**
    * 时间Date在时间段(例如每天的08:00-18:00)上增加或减去second秒
    *
    * @param date
    * @param second
    * @param timeBurst
    * @return 计算后的时间
    * @Suumary 指定的格式错误后返回原数据
    */
    public static Date calculate(Date date, int second, String timeBurst) {
    Pattern p = Pattern.compile("^\d{2}:\d{2}-\d{2}:\d{2}");
    Matcher m = p.matcher(timeBurst);
    java.util.Calendar cal = java.util.Calendar.getInstance();
    if (m.matches()) {
    String[] a = timeBurst.split("-");
    try {
    Date dayStart = DateTimeInstance().parse(DateInstance().format(date) + " " + a[0] + ":00");
    Date dayEnd = DateTimeInstance().parse(DateInstance().format(date) + " " + a[1] + ":00");
    int DaySecond = (int) subtract(dayStart, dayEnd);
    int toDaySecond = (int) subtract(dayStart, dayEnd);
    if (second >= 0) {
    if ((date.after(dayStart) || date.equals(dayStart))
    && (date.before(dayEnd) || date.equals(dayEnd))) {
    cal.setTime(date);
    toDaySecond = (int) subtract(date, dayEnd);
    }
    if (date.before(dayStart)) {
    cal.setTime(dayStart);
    toDaySecond = (int) subtract(dayStart, dayEnd);
    }
    if (date.after(dayEnd)) {
    cal.setTime(day(dayStart, 1));
    toDaySecond = 0;
    }

    if (second > toDaySecond) {
    int day = (second - toDaySecond) / DaySecond;
    int remainder = (second - toDaySecond) % DaySecond;
    cal.setTime(day(dayStart, 1));
    cal.add(Calendar.DAY_OF_YEAR, day);
    cal.add(Calendar.SECOND, remainder);
    } else {
    cal.add(Calendar.SECOND, second);
    }

    } else {
    if ((date.after(dayStart) || date.equals(dayStart))
    && (date.before(dayEnd) || date.equals(dayEnd))) {
    cal.setTime(date);
    toDaySecond = (int) subtract(date, dayStart);
    }
    if (date.before(dayStart)) {
    cal.setTime(day(dayEnd, -1));
    toDaySecond = 0;
    }
    if (date.after(dayEnd)) {
    cal.setTime(dayEnd);
    toDaySecond = (int) subtract(dayStart, dayEnd);
    }
    if (Math.abs(second) > Math.abs(toDaySecond)) {
    int day = (Math.abs(second) - Math.abs(toDaySecond)) / DaySecond;
    int remainder = (Math.abs(second) - Math.abs(toDaySecond)) % DaySecond;
    cal.setTime(day(dayEnd, -1));
    cal.add(Calendar.DAY_OF_YEAR, Integer.valueOf("-" + day));
    cal.add(Calendar.SECOND, Integer.valueOf("-" + remainder));
    } else {
    cal.add(Calendar.SECOND, second);
    }
    }
    } catch (ParseException e) {
    e.printStackTrace();
    }
    } else {
    cal.setTime(date);
    }
    return cal.getTime();
    }

    /**
    * 判断是否在某个时间段内
    * @param startTime
    * @param endTime
    * @param date
    * @return
    * @throws ParseException
    */
    public static boolean between(String startTime,String endTime,Date date)
    throws ParseException {
    return between(dateTime(startTime),dateTime(endTime),date);
    }

    /**
    * 判断在某个时间内
    * @param startTime
    * @param endTime
    * @param date
    * @return
    */
    public static boolean between(Date startTime,Date endTime,Date date){
    return date.after(startTime) && date.before(endTime);
    }
    }

  • 相关阅读:
    node.js 安装后怎么打开 node.js 命令框
    thinkPHP5 where多条件查询
    网站title中的图标
    第一次写博客
    Solution to copy paste not working in Remote Desktop
    The operation could not be completed. (Microsoft.Dynamics.BusinessConnectorNet)
    The package failed to load due to error 0xC0011008
    VS2013常用快捷键
    微软Dynamics AX的三层架构
    怎样在TFS(Team Foundation Server)中链接团队项目
  • 原文地址:https://www.cnblogs.com/chinaifae/p/10254822.html
Copyright © 2011-2022 走看看