zoukankan      html  css  js  c++  java
  • Java中的日期处理类

    在Java中可以使用Date类和Calendar类来处理日期

    但是Date类很多方法都过时了,推荐使用Canlendar类来处理日期,并对日期的格式化做了介绍。下面的部分将会逐一介绍

    Date类

        Java提供了Date类来处理日期、时间,Date类既包含日期,也包含时间。Date类从JDK1.0版本就开始存在,存在时间久远,提供的6个构造器中,已有4个建议放弃使用,目前使用的为:

    • Date():生成一个以系统当前时间日期为准的Date对象。
    • Date(long date):根据指定的long整型数来生成一个Date对象。
    • boolean after(Date when):判断日期是否在指定的日期when之后
    • boolean before(Date when):判断日期是否在指定的日期when之前。
    • int compareTo(Date antherDate):比较两个日期大小,后面时间大于前面时间返回-1,否则返回1.
    • Boolean equals(Object obj):两个时间表示同一时间是返回true
    • long getTime():返回该对象对应long型整数
    • void setTime(long time):设置该对象的时间。

      

    public class DateTest {
        public static void main(String[] args) throws InterruptedException {
            
            long start = System.currentTimeMillis();
            Date d1 = new Date(start);
            Thread.sleep(3000);
            long end = System.currentTimeMillis();
            Date d2 = new Date(end);
            System.out.println(d1.before(d2));
            System.out.println(d1.after(d2));
            System.out.println(d1.getTime());
            System.out.println(d1.equals(d2));    
            
        }
    }
    View Code

    Calendar类

      Calendar是一个抽象类,用于表示日历。因为Date类在设计上存在一些缺陷,所以Java提供Calendar类来更好的处理日期和时间。

          Calendar类不能直接创建,可以通过类方法来创建一个Calendar的子类,Java本身提供了GregorianCalendar子类,通过getInstance()方法返回默认时区和语言环境获得一个日历。返回的实例就是Java提供的默认子类。

      

      Calendar类提供的常用方法:

    • void add(int field,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
    • int get(int field):返回指定日历字段的值。
    • int getActualMaximum(int field):返回指定日历字段的可能拥有的最大值。
    • int getActualMinimum(int field):返回指定日历字段的可能拥有的最小值。
    • void roll(int field,int amout):与add方法相似,区别在于超过该字段的最大范围时,也不会向上一个字段进位。
    • void set(int field,int value):将给定的日历字段设置为给定值。
    • void set(int year,int month,int date):设置Calendar对象的年、月、日3个字段值。
    • void set(int year,int month,int date,int hourOfDay,int minute,int second):设置Calendar对象的年、月、日、时、分、秒6个字段的值。

      

    public class CalendarTest {
        
        public static void main(String[] args) {
            //通过类方法获得实例
            Calendar calendar = Calendar.getInstance();
            System.out.println(calendar.get(Calendar.YEAR));
    //        calendar.add(Calendar.DATE, 1);
    //        System.out.println(calendar.get(calendar.DATE));
            
            //roll的用法 (当超过范围不会向上进位)
            calendar.roll(Calendar.MONTH,10 );
            System.out.println(calendar.get(calendar.YEAR));
            System.out.println(calendar.get(calendar.MONTH));
            
            //获取该字段可能拥有的最大值
            System.out.println(calendar.getMaximum(calendar.MONTH));
            
            //自己设置时间
            calendar.set(2016, 06, 8);
            System.out.println(calendar.get(calendar.YEAR));    //返回设置后的时间
            
            //Date和Calendar类之间的转换
            Date date = calendar.getTime();
            //使用SimpleDateFormat格式化输出时间
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh点mm分ss秒");
            System.out.println(sdf.format(date));
        }
    
    }
    View Code

    使用DateFormat格式化日期

      DateFormat是一个抽象类,它也提供了几个工厂方法用于获取DateFormat对象。返回的都是DateFormat对象的子类实例,是同一个类型的实例。

       虽然返回的都是同一个对象类型的实例,但是根据不同的工厂方法,返回的对象在格式化时间对象时,处理不同部分的信息。

    • getDateInstance():返回一个日期格式器,只对日期进行格式化。
    • getTimeInstance():返回一个时间格式器,只对时间进行格式化。
    • getDateTimeInstance():返回一个日期、时间格式器,既对时间又对日期进行格式化。
    • getInstance():返回一个默认的系统相关的日期、时间格式器。

      

        public static void main(String[] args)  throws Exception{
            Date date = new Date();
            //默认为中国常用格式
            DateFormat format = DateFormat.getInstance();
            System.out.println(format.format(date));
            //返回日期、时间格式器国际统一标准
            format = DateFormat.getDateTimeInstance();
            System.out.println(format.format(date));
            //返回日期格式器,同时指定格式类型,为简洁型,指定要显示哪个国家的类型
            format = DateFormat.getDateInstance(DateFormat.SHORT, Locale.CHINA);
            System.out.println(format.format(date));
            //返回日期格式器,同时指定格式类型,为中等型,指定要显示哪个国家的类型
            format = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.CHINA);
            System.out.println(format.format(date));
            //返回日期格式器,同时指定格式类型,为完整型,指定要显示哪个国家的类型
            format = DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINA);
            System.out.println(format.format(date));
            //返回日期格式器,同时指定格式类型,为复杂型,指定要显示哪个国家的类型
            format = DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA);
            System.out.println(format.format(date));
        }
    View Code

    使用SimpleDateFormat格式化日期

      SimpleDateFormat是DateFormat的子类,是一种更简单的日期格式,以为我们指定的格式对日期进行格式化。

        注意使用的时候在new出对象的时候指定想要看到的日期格式即可。(具体代码上面例子有)

      

  • 相关阅读:
    js动态添加CSS
    LINUX命令行回滚SVN版本
    LINUX文件名批量修改
    LINUX下文件编码转换 iconv
    ubuntu下eclipse的svn插件使用javahl
    HTML5学习笔记 本地数据库
    正则表达式
    我的第一篇博客
    【分布式锁的演化】分布式锁居然还能用MySQL?
    【分布式锁的演化】终章!手撸ZK分布式锁!
  • 原文地址:https://www.cnblogs.com/0xcafedaddy/p/4560161.html
Copyright © 2011-2022 走看看