⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dateutil.java

📁 云网论坛CWBBS 源码,内容丰富,学习,参考,教学的好资料,具体见内说明,
💻 JAVA
字号:
package cn.js.fan.util;

import java.util.*;
import java.text.*;

public class DateUtil {
    public DateUtil() {
    }

    /**
     * 格式化为字符串
     * @param d Date
     * @param format String
     * @return String
     */
    public static String format(java.util.Date d, String format) {
        if (d == null)
            return "";
        SimpleDateFormat myFormatter = new SimpleDateFormat(format);
        return myFormatter.format(d);
    }

    public static String formatDate(Date d, int format, Locale locale, TimeZone timeZone) {
        if (d==null)
            return "";
        DateFormat df = DateFormat.getDateInstance(format, locale);
        df.setTimeZone(timeZone);
        return df.format(d);
    }

    public static String formatDateTime(Date d, int format1, int format2, Locale locale, TimeZone timeZone) {
        if (d==null)
            return "";
        // System.out.println("d=" + d + " format1=" + format1 + " format2=" + format2 + " locale=" + locale + " timezone=" +  timeZone);
        DateFormat df = DateFormat.getDateTimeInstance(format1, format2, locale);
        df.setTimeZone(timeZone);
        return df.format(d);
    }

    public static long toLong(Date d) {
        if (d==null)
            return 0;
        else
            return d.getTime();
    }

    public static String toLongString(Date d) {
        return "" + toLong(d);
    }

    /**
     * 从15位的字符串从解析出时间
     * @param timeMillis String
     * @return Date
     */
    public static Date parse(String timeMillis) {
        java.util.Date d = null;
        try {
            d = new java.util.Date(Long.parseLong(timeMillis.trim()));
        }
        catch (Exception e) {
            // System.out.println("parse:" + e.getMessage());
            // e.printStackTrace();
        }
        return d;
    }

    /**
     * 从字符串解析出时间
     * @param format String 格式,如:"yy-MM-dd HH:mm:ss"
     * @param time String
     * @return Date
     */
    public static Date parse(String time, String format) {
        java.util.Date d = null;
        try {
            d = parse(time, format, java.util.Locale.CHINA);
        }
        catch (Exception e) {
            // System.out.println("DateUtil.java parse:" + e.getMessage());
        }
        return d;
    }

    public static Date parse(String time, String format, Locale locale) throws Exception {
        if (time==null)
            return null;
        SimpleDateFormat sdf = new SimpleDateFormat(
                format, locale);
        java.util.Date d = null;
        d = sdf.parse(time);
        return d;
    }

    public static String format(Calendar cal, String format) {
        if (cal == null)
            return "";
        SimpleDateFormat myFormatter = new SimpleDateFormat(format);
        return myFormatter.format(cal.getTime());
    }

    /**
     * 加上天数
     * @param d Date
     * @param day int 天数
     * @return Calendar
     */
    public static Calendar add(java.util.Date d, int day) {
        if (d == null)
            return null;
        Calendar cal = Calendar.getInstance();
        cal.setTime(d);
        cal.add(Calendar.DATE, day);
        return cal;
    }

    public static Date addDate(java.util.Date d, int day) {
        if (d == null)
            return null;
        Calendar cal = Calendar.getInstance();
        cal.setTime(d);
        cal.add(Calendar.DATE, day);
        return cal.getTime();
    }

    public static Date addHourDate(java.util.Date d, int h) {
        if (d == null)
            return null;
        Calendar cal = Calendar.getInstance();
        cal.setTime(d);
        cal.add(Calendar.HOUR, h);
        return cal.getTime();
    }

    public static Calendar addHour(java.util.Date d, int h) {
        if (d == null)
            return null;
        Calendar cal = Calendar.getInstance();
        cal.setTime(d);
        cal.add(Calendar.HOUR, h);
        return cal;
    }

    public static Date addMinuteDate(java.util.Date d, int m) {
        if (d == null)
            return null;
        Calendar cal = Calendar.getInstance();
        cal.setTime(d);
        cal.add(Calendar.MINUTE, m);
        return cal.getTime();
    }

    public static Calendar addMinute(java.util.Date d, int m) {
        if (d == null)
            return null;
        Calendar cal = Calendar.getInstance();
        cal.setTime(d);
        cal.add(Calendar.MINUTE, m);
        return cal;
    }

    /**
     * 比较两个时间的值
     * @param c1 Calendar
     * @param c2 Calendar
     * @return int 如果c1晚则为1,c2晚则为2,相等则为0,如果c1或c2为空则为-1
     */
    public static int compare(Calendar c1, Calendar c2) {
        if (c1 == null || c2 == null)
            return -1;
        long r = c1.getTimeInMillis() - c2.getTimeInMillis();
        if (r > 0)
            return 1;
        else if (r == 0)
            return 0;
        else
            return 2;
    }

    /**
     * 比较两个时间的值
     * @param c1 Date
     * @param c2 Date
     * @return int 如果c1晚则为1,c2晚则为2,相等则为0,如果c1或c2为空则为-1
     * @return int
     */
    public static int compare(Date c1, Date c2) {
        if (c1 == null || c2 == null)
            return -1;
        long r = c1.getTime() - c2.getTime();
        // System.out.println("compare r=" + r);
        if (r > 0)
            return 1;
        else if (r == 0)
            return 0;
        else
            return 2;
    }

    /**
     * 比较两个日期是否为同一天
     * @param c1 Calendar
     * @param c2 Calendar
     * @return boolean
     */
    public static boolean isSameDay(Calendar c1, Calendar c2) {
        if (c1==null || c2==null)
            return false;
        if (c1.get(c1.YEAR)==c2.get(c1.YEAR) && c1.get(c1.MONTH)==c2.get(c1.MONTH) && c1.get(c1.DAY_OF_MONTH)==c2.get(c1.DAY_OF_MONTH))
            return true;
        else
            return false;
    }

    /**
     * 比较两个日期是否为同一天
     * @param d1 Date
     * @param d2 Date
     * @return boolean
     */
    public static boolean isSameDay(Date d1, Date d2) {
        if (d1==null || d2==null)
            return false;
        Calendar c1 = Calendar.getInstance();
        c1.setTime(d1);
        Calendar c2 = Calendar.getInstance();
        c2.setTime(d2);
        if (c1.get(c1.YEAR)==c2.get(c1.YEAR) && c1.get(c1.MONTH)==c2.get(c1.MONTH) && c1.get(c1.DAY_OF_MONTH)==c2.get(c1.DAY_OF_MONTH))
            return true;
        else
            return false;
    }

    /**
     * 计算两个日期相差的天数
     * @param c1 Calendar
     * @param c2 Calendar
     * @return int 返回天数,不足24小时的为0
     */
    public static int datediff(Calendar c1, Calendar c2) {
        if (c1 == null || c2 == null)
            return -1;
        long r = c1.getTimeInMillis() - c2.getTimeInMillis();
        r = r / (24 * 60 * 60 * 1000);
        return (int) r;
    }

    /**
     * 计算两个日期相差的天数
     * @param c1 Date
     * @param c2 Date
     * @return int 返回天数,不足24小时的为0
     */
    public static int datediff(Date c1, Date c2) {
        if (c1 == null || c2 == null)
            return -1;
        long r = c1.getTime() - c2.getTime();
        r = r / (24 * 60 * 60 * 1000);
        return (int) r;
    }

    /**
     * 取得相差的分钟数
     * @param c1 Date
     * @param c2 Date
     * @return int
     */
    public static int datediffMinute(Date c1, Date c2) {
        if (c1 == null || c2 == null)
            return 0;
        long r = c1.getTime() - c2.getTime();
        r = r / (60 * 1000);
        return (int) r;
    }

    public static int datediffMinute(Calendar c1, Calendar c2) {
        if (c1 == null || c2 == null)
            return 0;
        long r = c1.getTimeInMillis() - c2.getTimeInMillis();
        r = r / (60 * 1000);
        return (int) r;
    }

    /**
     * 取得时间差中的天数、小时、分钟、秒
     * @param d1 Date
     * @param d2 Date
     * @return int[]
     */
    public static int[] dateDiffDHMS(Date d1, Date d2) {
        int diffDay = datediff(d1, d2);

        int h1 = d1.getHours();
        int h2 = d2.getHours();
        int m1 = d1.getMinutes();
        int m2 = d2.getMinutes();
        int s1 = d1.getSeconds();
        int s2 = d2.getSeconds();

        int s = s1-s2;
        int m = m1-m2;
        if (s<0) {
            s += 60;
            m -= 1;
        }
        int h = h1-h2;
        if (m<0) {
            m += 60;
            h -= 1;
        }
        if (h<0) {
            h += 24;
        }
        // System.out.println("DateUtil.java diffDay=" +  diffDay);
        int[] r = {diffDay, h, m, s};
        return r;
    }

    /**
     * 取得月份中的天数
     * @param year int
     * @param month int
     * @return int
     */
    public static int getDayCount(int year, int month) {
        int daysInMonth[] = {
                            31, 28, 31, 30, 31, 30, 31, 31,
                            30, 31, 30, 31};
        // 测试选择的年份是否是润年?
        if (1 == month)
            return ((0 == year % 4) && (0 != (year % 100))) ||
                    (0 == year % 400) ? 29 : 28;
        else
            return daysInMonth[month];
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -