博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DateUtil
阅读量:6235 次
发布时间:2019-06-22

本文共 7461 字,大约阅读时间需要 24 分钟。

一、Date类,目前系统不推荐使用,还是有必要讲下,毕竟很多情况下,初学者可能接触的多就是Date 类了,所以很多人喜欢用。

①、使用new Date()代表当前系统时间

    Date date = new Date();

           System.out.println(date);

使用Date类的默认构造方法创建出的对象就代表当前时间,由于Date类覆盖了toString方法,所以可以直接输出Date类型的对象。结果格式如下 : 

Sun Jan 17 15:22:53 CST 2016

②、使用指定时间(年 - 1900, 月 -1 , 日)格式来创建时间对象

Date date = new Date(2016 - 1900, 1-1, 17);

System.out.println(date.toLocaleString()); // 2016-1-17 0:00:00

注意 : 年份 要 - 1900 , 月份 要 - 1

③、使用指定毫秒来创建Date

Date now = new Date();

Date now2 = new Date(now.getTime());

System.out.println(now2);// 2016-1-17 15:32:59

二、Calendar类

我们都知道, java Date类 有些方法是过时的,现在系统也推荐使用Calendar类进行时间和日期处理。Calendar 类的设计及其提供的功能远比Date强大。

Calendar是抽象基类,它有很多子类,但它却对开发者而言是透明的。我们只需要简单调用Calendar.getInstance(),就可以返回当前系统

时间对象,有了这个对象,就可以为所欲为了!

①、 Calendar类的常量

   Calendar.YEAR——年份

         Calendar.MONTH——月份

         Calendar.DATE——日期

         Calendar.DAY_OF_MONTH——日期,和上面的字段完全相同

         Calendar.HOUR——12小时制的小时数

         Calendar.HOUR_OF_DAY——24小时制的小时数

         Calendar.MINUTE——分钟

         Calendar.SECOND——秒

         Calendar.DAY_OF_WEEK——星期几

②、Calendar 构造函数

protected Calendar() {

},由于是protected函数,故无法直接通过new来创建对象,但Calendar提供了getInstance()来获取Calendar对象。

③、Calendar类的常用方法

 setTime(Date date) // 设置指定时间date的Calendar对象

 Date getTime() // 获取我们创建的Calendar对象对应的时间

 get(int field) // 获取指定field的值。field如①。

二、自己总结的日期工具类

// base 操作    public static void base() {        Calendar calendar = Calendar.getInstance();        Date now = calendar.getTime();        print(now);                System.out.println(calendar.getActualMaximum(Calendar.MONTH)); // 11        System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 当前月的最后一天 如 2016年1月, 则为31        System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_WEEK)); // 7        System.out.println(calendar.getActualMaximum(Calendar.HOUR_OF_DAY)); // 23        System.out.println(calendar.getActualMaximum(Calendar.MINUTE)); // 59        System.out.println(calendar.getActualMaximum(Calendar.SECOND)); // 59                System.out.println(calendar.get(Calendar.DATE));        System.out.println(calendar.get(Calendar.YEAR)); // 当前年份        System.out.println(calendar.get(Calendar.MONTH) + 1); // 当前月份        System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 当前时        System.out.println(calendar.get(Calendar.MINUTE)); // 当前分        System.out.println(calendar.get(Calendar.SECOND)); // // 当前秒                System.out.println(calendar.getTimeInMillis()); // 毫秒    }    /**     * 获取两个指定日期的间隔天数     * @param start     * @param end     * @return     */    public static int getDaysBetween(Date start, Date end) {                Calendar scalendar = Calendar.getInstance();        scalendar.setTime(start);                Calendar ecalendar = Calendar.getInstance();        ecalendar.setTime(end);                long between = ecalendar.getTimeInMillis() - scalendar.getTimeInMillis();                return (int) (between / 60L / 60L / 24L / 1000L);            }    /**     * start <= target <= end  : true      * @param target     * @param start     * @param end     * @return     */    public static boolean isBetween(Date target, Date start, Date end) {                long t = target.getTime();        long s = start.getTime();        long e = end.getTime();        if(t >= s && t <= e) {            return Boolean.TRUE;        }        return Boolean.FALSE;    }        /**     * 获取当前月的第一天     * @param date     * @return     */    public static Date getFirstDateOnMonth(Date date) {         Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        calendar.set(Calendar.DAY_OF_MONTH, 1);        return zerolizedTime(calendar.getTime());    }        /**     * 获取当前月的最后一天     * @param date     * @return     */    public static Date getLastDateOnMonth(Date date) {                Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        calendar.add(Calendar.MONTH, 1);        calendar.set(Calendar.DAY_OF_MONTH, 0);        return zerolizedTime(calendar.getTime());    }    /**     * 获取下个月的第一天     * @param date     * @return     */    public static Date getFirstDateOnNextMonth(Date date) {                Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        calendar.add(Calendar.MONTH, 1);        return getFirstDateOnMonth(calendar.getTime());    }        /**     * 获取下个月的最后一天     * @param date     * @return     */    public static Date getLastDateOnNextMonth(Date date) {                Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        calendar.add(Calendar.MONTH, 1);        return getLastDateOnMonth(calendar.getTime());    }        /**     * 把日期后的时间归0 变成(yyyy-MM-dd 00:00:00:000)     * @param Date     * @return Date     */    public static Date zerolizedTime(Date date) {        Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        calendar.set(Calendar.HOUR_OF_DAY, 0);        calendar.set(Calendar.MINUTE, 0);        calendar.set(Calendar.SECOND, 0);        calendar.set(Calendar.MILLISECOND, 0);        return calendar.getTime();    }        /**     * 在指定的date上 + days 天     * @param date     * @param days     * @return     */    public static Date addDateDay(Date date, int days) {                Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        calendar.add(Calendar.DAY_OF_YEAR, days);        return calendar.getTime();    }        /**     * 在指定的date上 + minutes 分     * @param date     * @param minutes     * @return     */    public static Date addDateMinute(Date date, int minutes) {                Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        calendar.add(Calendar.MINUTE, minutes);        return calendar.getTime();    }        /**     * 在指定的date上 + seconds 秒     * @param date     * @param seconds     * @return     */    public static Date addDateSeconds(Date date, int seconds) {                Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        calendar.add(Calendar.SECOND, seconds);        return calendar.getTime();    }        // date 转 string    public static String format2yyyyMMdd(Date date) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        return sdf.format(date);    }        public static String format2yyyyMMddHHmmss(Date date) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        return sdf.format(date);    }        public static String format2yyyyMMddHH(Date date) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:00:00");        return sdf.format(date);    }        public static String format2yyyyMMddHHmm(Date date) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:00");        return sdf.format(date);    }        // string 转 date    public static Date parseDate2yyyyMMdd(String date) throws ParseException {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        Date parseDate = sdf.parse(date);        return parseDate;    }        public static Date parseDate2yyyyMMddHHmmss(String date) throws ParseException {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        Date parseDate = sdf.parse(date);        return parseDate;    }        @SuppressWarnings("deprecation")    public static void print(Date date) {                System.out.println(date.toLocaleString());    }        public static void print(String  date) {                System.out.println(date);    }

 

 
 

转载于:https://www.cnblogs.com/chenmo-xpw/p/5137300.html

你可能感兴趣的文章
运维工程师的职责和前景
查看>>
小议安全测试【测试帮日记公开课】
查看>>
Red Hat Enterprise Linux 8 Beta 抢先体验
查看>>
objectC 数据类型转换
查看>>
阿里退市,投资人实在应该鼓掌欢迎
查看>>
zabbix企业应用之从数据库提取centos 6.2系统在线天数
查看>>
大学生抄袭,病根在哪?
查看>>
3.VMware vsphere 5.0新体验-安装VMware Center
查看>>
Windows 7的预备知识系列之二:认识Windows 7中的窗口
查看>>
运用Ntop监控网络流量(视频Demo)
查看>>
《Windows Server 2012活动目录管理实践》 内容提要、前言
查看>>
SQL高级---SQL CREATE INDEX 语句
查看>>
SharePoint 2010 使用资源管理器打开
查看>>
wpf 第一天
查看>>
接口到底是个什么玩意
查看>>
IP多播
查看>>
easy_install with proxy
查看>>
java中的四种代码块
查看>>
Mercurial与TortoiseHg使用入门教程
查看>>
Visual Assist X 快捷键
查看>>