关于java日期类Date,DateFormat,SimpleDateFormat,Calendar总结

                      Date,DateFormat,SimpleDateFormat,Calendar

                                    spacer.gif

1、Date类:

    在java.util包下,类 Date 表示特定的瞬间,精确到毫秒。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串。Date 中的相应方法已废弃。所以Date主要用来生成时间(是网上见解,我也是这样认为的)。

(1)Date有两个构造方法:

        (1)Date():分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。

        (2)Date(long date)基本上没用不用记。

   eg:Date date=new Date();  System.out.println(date);输出:Tue Jun 16 20:51:24 CST 2015

(2)Date常用方法:

    boolean after(Date when) 测试此日期是否在指定日期之后  

没什么用我感觉)                   boolean before(Date when) 测试此日期是否在指定日期之前           

   int compareTo(Date anotherDate) 比较两个日期的顺序            


2、DateFormat类:

     在java.text包下,DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。它是抽象类,所以不能构造方法来实例化,可以用getDateInstance()和getDateTimeInstance()这两个静态函数来进行实例化。这两个的区别是一个返回的是日期,一个返回的是日期+时间.同时,getDateInstance(int style),getDateInstance(int style, Locale aLocale)等方法也挺好用的。关于style值:

FULL: 长度最长 比如:2013年1月9日 星期三        LONG: 长度更长 比如:January 9, 2013

MEDIUM:长度比SHORT长 比如:Jan 9,2013           SHORT: 完全为数字,比如:13/1/9

eg:DateFormat d1=DateFormat.getDateInstance();

     DateFormat d2=DateFormat.getDateTimeInstance();                                       

        String s1=d1.format(new Date());                                                   

        String s2=d2.format(new Date());         输出:2015-6-16                           

        System.out.println(s1);                        2015-6-16 21:05:22                  

        System.out.println(s2);


eg1:DateFormat d1=DateFormat.getDateInstance(DateFormat.LONG);       输出:2015年6月16日

3、SimpleDateFormat类:

    在java.text包下,它是DateFormat类的直接子类,继承DateFormat类。我是这么理解SimpleDateFormat类的,它相对于Datef类更接地气,你可以随意给他指定一个形式的日期,进行更改。SimpleDateFormat类主要功能是完成日期之间格式的转换,而且在转换过程中需要采用如下步骤:1.指定一个模板,并根据这个模板,取出第一个所有的时间数字。2.所有的时间数字将采用Date类保存。3.将所有的时间数字重新进行格式转换。模板如下表,注意区分大小写

日期模板描述
Y表示年:yyyy
M表示月:MM
d表示日:dd
HH表示时:HH
mm表示分:mm
ss表示秒:ss
毫秒S毫秒:SSS

eg:SimpleDateFormat sdf=new SimpleDateFormat("y年M月d日    HH:mm:ss D");    //也可以是"yyyy年MM月dd日

       System.out.println(sdf.format(new Date()));        输出:2015年6月16日    21:39:10 167

4、Calendar类:

    在java.util包下,Calendar 类是一个抽象类,它为“特定瞬间”与一组诸如 “YEAR”、

“MONTH”、“DAY_OF_MONTH”、“HOUR ”等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。Calendar实例化有两种方式,第一种是 Calendar nowTime = new GregorianCalendar();,第二种是Calendar calendar=Calendar.getInstance();

 eg:Calendar c=Calendar.getInstance();

    System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+

    c.get(Calendar.DATE)+"日"+c.get(Calendar.HOUR)+"点");   // 输出:2015年6月16日9点

(1)常用的方法:

        add(int date,int num);//返回num前后的日期//date表示日期字段,num表示添加的天数;

     get(int date);//通过获取字段,返回具体的信息;


    这些见解是找了大量资料浓缩而成的精华,我感觉能对一个新入门的人起一些关键性的作用,至于这些类里面还有很多很多的方法,我觉得没必要记了,不懂的时候可以查api文档。

本文出自 “不是_英雄” 博客,转载请与作者联系!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值