`
tof.j
  • 浏览: 135481 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类

java日期时间工具类

阅读更多
import java.sql.Time;   
import java.sql.Timestamp;   
import java.text.ParseException;   
import java.text.SimpleDateFormat;   
import java.util.Calendar;   
import java.util.Date;   
import java.util.GregorianCalendar;       
  
public class DateUtil {   
    /**  
     * getDateStr get a string with format YYYY-MM-DD from a Date object  
     *   
     * @param date  
     *            date  
     * @return String  
     */  
    static public String getDateStr(Date date) {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");   
        return format.format(date);   
    }   
      
    static public String getYear(Date date) {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy");   
        return format.format(date);   
    }   
    static public String getDateStrC(Date date) {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");   
        return format.format(date);   
    }   
  
    static public String getDateStrCompact(Date date) {   
        if (date == null)   
            return "";   
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");   
        String str = format.format(date);   
        return str;   
    }   
  
    /**  
     * getDateStr get a string with format YYYY-MM-DD HH:mm:ss from a Date  
     * object  
     *   
     * @param date  
     *            date  
     * @return String  
     */  
    static public String getDateTimeStr(Date date) {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
        return format.format(date);   
    }   
  
    static public String getDateTimeStrC(Date date) {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");   
        return format.format(date);   
    }   
  
    public static String getCurDateStr(String pattern) {   
        SimpleDateFormat format = new SimpleDateFormat(pattern);   
        return format.format(new Date());   
    }   
  
    /**  
     * Parses text in 'YYYY-MM-DD' format to produce a date.  
     *   
     * @param s  
     *            the text  
     * @return Date  
     * @throws ParseException  
     */  
    static public Date parseDate(String s) throws ParseException {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");   
        return format.parse(s);   
    }   
  
    static public Date parseDateC(String s) throws ParseException {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");   
        return format.parse(s);   
    }   
  
    /**  
     * Parses text in 'YYYY-MM-DD' format to produce a date.  
     *   
     * @param s  
     *            the text  
     * @return Date  
     * @throws ParseException  
     */  
    static public Date parseDateTime(String s) throws ParseException {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
        return format.parse(s);   
    }   
       
    static public Date parseDateTimeC(String s) throws ParseException {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");   
        return format.parse(s);   
    }   
  
    /**  
     * Parses text in 'HH:mm:ss' format to produce a time.  
     *   
     * @param s  
     *            the text  
     * @return Date  
     * @throws ParseException  
     */  
    static public Date parseTime(String s) throws ParseException {   
        SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");   
        return format.parse(s);   
    }   
  
    static public Date parseTimeC(String s) throws ParseException {   
        SimpleDateFormat format = new SimpleDateFormat("HH时mm分ss秒");   
        return format.parse(s);   
    }   
  
    static public int yearOfDate(Date s) throws ParseException {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");   
        String d = format.format(s);   
        return Integer.parseInt(d.substring(0, 4));   
    }   
  
    static public int monthOfDate(Date s) throws ParseException {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");   
        String d = format.format(s);   
        return Integer.parseInt(d.substring(5, 7));   
    }   
  
    static public int dayOfDate(Date s) throws ParseException {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");   
        String d = format.format(s);   
        return Integer.parseInt(d.substring(8, 10));   
    }   
  
    static public String getDateTimeStr(java.sql.Date date, double time) {   
        int year = date.getYear() + 1900;   
        int month = date.getMonth() + 1;   
        int day = date.getDate();   
        String dateStr = year + "-" + month + "-" + day;   
        Double d = new Double(time);   
        String timeStr = String.valueOf(d.intValue()) + ":00:00";   
  
        return dateStr + " " + timeStr;   
    }   
  
    /**  
     * Get the total month from two date.  
     *   
     * @param sd  
     *            the start date  
     * @param ed  
     *            the end date  
     * @return int month form the start to end date  
     * @throws ParseException  
     */  
    static public int diffDateM(Date sd, Date ed) throws ParseException {   
        return (ed.getYear() - sd.getYear()) * 12 + ed.getMonth()   
                - sd.getMonth() + 1;   
    }   
  
    static public int diffDateD(Date sd, Date ed) throws ParseException {   
        return Math.round((ed.getTime() - sd.getTime()) / 86400000) + 1;   
    }   
  
    static public int diffDateM(int sym, int eym) throws ParseException {   
        return (Math.round(eym / 100) - Math.round(sym / 100)) * 12  
                + (eym % 100 - sym % 100) + 1;   
    }   
  
    static public java.sql.Date getNextMonthFirstDate(java.sql.Date date)   
            throws ParseException {   
        Calendar scalendar = new GregorianCalendar();   
        scalendar.setTime(date);   
        scalendar.add(Calendar.MONTH, 1);   
        scalendar.set(Calendar.DATE, 1);   
        return new java.sql.Date(scalendar.getTime().getTime());   
    }   
  
    static public java.sql.Date getFrontDateByDayCount(java.sql.Date date,   
            int dayCount) throws ParseException {   
        Calendar scalendar = new GregorianCalendar();   
        scalendar.setTime(date);   
        scalendar.add(Calendar.DATE, -dayCount);   
        return new java.sql.Date(scalendar.getTime().getTime());   
    }   
  
    /**  
     * Get first day of the month.  
     *   
     * @param year  
     *            the year  
     * @param month  
     *            the month  
     * @return Date first day of the month.  
     * @throws ParseException  
     */  
    static public Date getFirstDay(String year, String month)   
            throws ParseException {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");   
        return format.parse(year + "-" + month + "-1");   
    }   
  
    static public Date getFirstDay(int year, int month) throws ParseException {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");   
        return format.parse(year + "-" + month + "-1");   
    }   
  
    static public Date getLastDay(String year, String month)   
            throws ParseException {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");   
        Date date = format.parse(year + "-" + month + "-1");   
  
        Calendar scalendar = new GregorianCalendar();   
        scalendar.setTime(date);   
        scalendar.add(Calendar.MONTH, 1);   
        scalendar.add(Calendar.DATE, -1);   
        date = scalendar.getTime();   
        return date;   
    }   
  
    static public Date getLastDay(int year, int month) throws ParseException {   
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");   
        Date date = format.parse(year + "-" + month + "-1");   
  
        Calendar scalendar = new GregorianCalendar();   
        scalendar.setTime(date);   
        scalendar.add(Calendar.MONTH, 1);   
        scalendar.add(Calendar.DATE, -1);   
        date = scalendar.getTime();   
        return date;   
    }   
  
    /**  
     * getToday get todat string with format YYYY-MM-DD from a Date object  
     *   
     * @param date  
     *            date  
     * @return String  
     */  
  
    static public String getTodayStr() throws ParseException {   
        Calendar calendar = Calendar.getInstance();   
        return getDateStr(calendar.getTime());   
    }   
  
    static public Date getToday() throws ParseException {   
        return new Date(System.currentTimeMillis());   
    }   
  
    static public String getTodayAndTime() {   
        return new Timestamp(System.currentTimeMillis()).toString();   
    }   
  
    static public String getTodayC() throws ParseException {   
        Calendar calendar = Calendar.getInstance();   
        return getDateStrC(calendar.getTime());   
    }   
  
    static public int getThisYearMonth() throws ParseException {   
        Date today = Calendar.getInstance().getTime();   
        return (today.getYear() + 1900) * 100 + today.getMonth() + 1;   
    }   
  
    static public int getYearMonth(Date date) throws ParseException {   
        return (date.getYear() + 1900) * 100 + date.getMonth() + 1;   
    }   
  
    // 获取相隔月数   
    static public long getDistinceMonth(String beforedate, String afterdate)   
            throws ParseException {   
        SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd");   
        long monthCount = 0;   
        try {   
            java.util.Date d1 = d.parse(beforedate);   
            java.util.Date d2 = d.parse(afterdate);   
  
            monthCount = (d2.getYear() - d1.getYear()) * 12 + d2.getMonth()   
                    - d1.getMonth();   
            // dayCount = (d2.getTime()-d1.getTime())/(30*24*60*60*1000);   
  
        } catch (ParseException e) {   
            System.out.println("Date parse error!");   
            // throw e;   
        }   
        return monthCount;   
    }   
  
    // 获取相隔天数   
    static public long getDistinceDay(String beforedate, String afterdate)   
            throws ParseException {   
        SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd");   
        long dayCount = 0;   
        try {   
            java.util.Date d1 = d.parse(beforedate);   
            java.util.Date d2 = d.parse(afterdate);   
  
            dayCount = (d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000);   
  
        } catch (ParseException e) {   
            System.out.println("Date parse error!");   
            // throw e;   
        }   
        return dayCount;   
    }   
  
    // 获取相隔天数   
    static public long getDistinceDay(Date beforedate, Date afterdate)   
            throws ParseException {   
        long dayCount = 0;   
  
        try {   
            dayCount = (afterdate.getTime() - beforedate.getTime())   
                    / (24 * 60 * 60 * 1000);   
  
        } catch (Exception e) {   
            // System.out.println("Date parse error!");   
            // // throw e;   
        }   
        return dayCount;   
    }   
  
    static public long getDistinceDay(java.sql.Date beforedate,   
            java.sql.Date afterdate) throws ParseException {   
        long dayCount = 0;   
  
        try {   
            dayCount = (afterdate.getTime() - beforedate.getTime())   
                    / (24 * 60 * 60 * 1000);   
  
        } catch (Exception e) {   
            // System.out.println("Date parse error!");   
            // // throw e;   
        }   
        return dayCount;   
    }   
  
    // 获取相隔天数   
    static public long getDistinceDay(String beforedate) throws ParseException {   
        return getDistinceDay(beforedate, getTodayStr());   
    }   
  
    // 获取相隔时间数   
    static public long getDistinceTime(String beforeDateTime,   
            String afterDateTime) throws ParseException {   
        SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");   
        long timeCount = 0;   
        try {   
            java.util.Date d1 = d.parse(beforeDateTime);   
            java.util.Date d2 = d.parse(afterDateTime);   
  
            timeCount = (d2.getTime() - d1.getTime()) / (60 * 60 * 1000);   
  
        } catch (ParseException e) {   
            System.out.println("Date parse error!");   
            throw e;   
        }   
        return timeCount;   
    }   
  
    // 获取相隔时间数   
    static public long getDistinceTime(String beforeDateTime)   
            throws ParseException {   
        return getDistinceTime(beforeDateTime, new Timestamp(System   
                .currentTimeMillis()).toLocaleString());   
    }   
  
    // 获取相隔分钟数   
    static public long getDistinceMinute(String beforeDateTime,   
            String afterDateTime) throws ParseException {   
        SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
        long timeCount = 0;   
        try {   
            java.util.Date d1 = d.parse(beforeDateTime);   
            java.util.Date d2 = d.parse(afterDateTime);   
分享到:
评论

相关推荐

    java日期时间工具类超级全

    java日期时间工具类超级全。其中包含:获得当前日期 yyyy-MM-dd HH:mm:ss;获取系统当前时间戳;获取当前日期 yy-MM-dd;得到两个时间差 格式yyyy-MM-dd HH:mm:ss;转化long值的日期为yyyy-MM-dd HH:mm:ss.SSS格式的...

    java 日期时间工具类 日期时间的加减 身份证号上的日期是否小于2岁等

    java 日期时间工具类 日期时间的加减 身份证号上的日期是否小于2岁等

    Java 日期比较工具类

    Java 日期比较工具类 各种日期操作及计算( 获取两个日期 间隔天数 间隔月数 格式化日期 )

    时间工具类

    时间类型方面很好用的工具类,包括时间类型的转化与计算等

    java操作日期时间工具类

    在Java编程语言中,处理日期和...总之,一个良好的日期时间工具类应该简化日期时间的常见操作,提高代码的可读性和可维护性。在Java 8及更高版本中,可以考虑利用`java.time`包提供的新特性来进一步优化工具类的设计。

    Java日期工具类

    Java日期工具类 1、日期的各种格式化 2、获取当前年度 3、获取当前月份 4、获取当前天号数 5、获取当前时间往前推一个月的时间 6、获取上个月("MMM yyyy") 7、获取上个月("yyyymm") 8、获取上个月("yyyy-mm") 9、...

    Java日期工具类,Java时间工具类,Java时间格式化

    本篇将围绕Java中的日期工具类和时间工具类展开讨论,同时会涉及到日期时间的格式化。 首先,Java 8之前,我们主要依赖`java.util.Date`和`java.text.SimpleDateFormat`这两个类来处理日期和时间。`Date`类用于表示...

    java 日期操作工具类:包括计算两个时间相差距离多少天多少小时多少分多少秒

    1. **Java日期API**: - 在Java中,日期和时间的处理主要依赖于`java.util.Date`、`java.util.Calendar`以及从Java 8开始引入的`java.time`包。本工具类可能使用了这些API来创建、修改和比较日期对象。 2. **日期...

    最全的java时间(日期)工具类

    本文将深入探讨Java中的日期时间工具类,特别是基于给定的"DateUtil.java"文件,我们将聚焦在传统`java.util.Date`和`java.text.SimpleDateFormat`以及Java 8的`java.time`包中的相关类。 首先,我们来看看`java....

    【强2】30个java工具类

    使用java工具类可有效的提高开发效率! 没有CSDN积分的朋友到这里源头下载:http://www.javacs.cn/bbs/thread-382-1-1.html 感谢支持 ...[工具类] 时间工具TimeUtil.java [工具类] 连数据库ConnectDB.java

    Java日期处理工具类

    基本涵盖了各种场景的日期处理需要,包括时间类型转换,获取N天前后,月初月末,某段时间按天拆分等功能,欢迎使用。

    java时间日期格式化工具类

    本篇文章将深入探讨Java中的日期格式化工具类及其使用方法,主要围绕提供的`DateUtil`工具类展开。 首先,`java.util.Date`是Java早期用于表示日期和时间的基础类,但它并不提供直接的格式化功能。为了将`Date`对象...

    java日期工具类

    然而,由于`Date`类存在一些设计上的不足,如不便于格式化和处理时区等问题,后来Java引入了`java.time`包,提供了一系列更加强大和易用的日期时间API。本文将深入探讨`java.util.Date`和`java.time`包中的日期工具...

    java操作时间工具类

    Java操作时间工具类是开发者日常工作中经常会用到的模块,特别是在处理日期和时间相关的业务逻辑时。本工具类主要是为了方便地对日期和时间进行格式化、比较、计算等操作,提高开发效率。下面我们将详细探讨Java中...

    java日期,时间工具类

    各种日期格式,时间戳,时间计算的相互转换。直接引入工程中,可使用

    30个java工具类

    [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中计算任意两个日期之间的工作天数 .java.txt [工具类] java抓取网页...[工具类] 时间工具TimeUtil.java [工具类] 连数据库ConnectDB.java

    一些java常用的工具类

    通常,这样的库会包含一系列针对特定场景的工具类,如日期时间处理、文件操作、字符串格式化、数据校验等。例如,可能会有一个DateTimeUtils类,提供日期和时间的格式化、比较和转换方法;一个FileUtils类,用于文件...

    java工具类集合

    - `java.util.Date` 是旧版的日期时间API,使用不便,现在已经推荐使用`java.time`包中的类,如`LocalDate`, `LocalTime`, `LocalDateTime`, `ZonedDateTime`等,这些类提供了更强大和友好的日期时间操作。...

    java常用的工具类整理28个

    5. **java.time.***(Java 8及以上):包括`LocalDate`、`LocalTime`、`LocalDateTime`等,提供了更强大和直观的日期时间处理。 6. **java.io.File**:文件操作类,可以创建、删除、重命名文件,获取文件属性等。 ...

Global site tag (gtag.js) - Google Analytics