java学习之路---java类库-----Date类

一 :Date 类

       看源码:
           public  Date () {
         this (System.currentTimeMillis());
                              }

       输出当前时间
          代码:
      public  class  DateDemo1 {
                public  static  void  main(String[] args) {
                   System.  out .println( "当前时间"  + new  Date());
              }
}

结果:
      当前时间Thu Nov 21 19:04:02 CST 2013


二: Calendar类
     看源码:

                public  abstract  class  Calendar  implements  Serializable, Cloneable, Comparable<Calendar> {
}

               看见Calendar是一个抽象类,那么抽象类就必须要子类来继承实现

     我们看源码的时候,看见Calendar有许多常量

          下面就是一些常量的解释:

          


除了看见常量,还有一些方法

                    

下面我们就来实现一些方法:


          1.    在源码中有这样一段代码:


                       public  static  Calendar getInstance()
                         {
              Calendar cal = createCalendar(TimeZone.getDefaultRef(),    
                               Locale.getDefault(Locale.Category. FORMAT ));
        cal.  sharedZone  =  true  ;
         return  cal;
               }

我们在看看   createCalendar这个是个什么?
             private  static  Calendar createCalendar(TimeZone zone,
                                           Locale aLocale)
    {
        Calendar cal =  null ;

        String caltype = aLocale.getUnicodeLocaleType( "ca"  );
         if  (caltype ==  null ) {
             // Calendar type is not specified.
             // If the specified locale is a Thai locale,
             // returns a BuddhistCalendar instance.
             if  ( "th"  .equals(aLocale.getLanguage())
                    && ( "TH" .equals(aLocale.getCountry()))) {
                cal =  new  BuddhistCalendar(zone, aLocale);
            }  else  {
                cal =  new  GregorianCalendar(zone, aLocale);
            }
        }  else  if  (caltype.equals( "japanese" )) {
            cal =  new  JapaneseImperialCalendar(zone, aLocale);
        }  else  if  (caltype.equals( "buddhist" )) {
            cal =  new  BuddhistCalendar(zone, aLocale);
        }  else  {
             // Unsupported calendar type.
             // Use Gregorian calendar as a fallback.
            cal =  new  GregorianCalendar(zone, aLocale);
        }

         return  cal;
    }

我看到这个方法就是来用子类实例化父类的

          2.     方法代码如下:

public  class  DateDemo1 {
                public  static  void  main(String[] args) {
                   System.  out .println( "当前时间"  + new  Date());
                   Calendar calendar=Calendar.getInstance();
                   System.  out .println(calendar.getTime());
              }
}

结果:
当前时间Thu Nov 21 19:14:49 CST 2013
Thu Nov 21 19:14:50 CST 2013


意思就是Calendar类的getTime就是取得当前的时间

          
3.取得当前的系统时间

           public  class  DateDemo2 {
      public  static  void  main(String[] args) {
          Calendar calendar=  null ; //声明对象
          
              calendar=  new  GregorianCalendar(); //子类为其实例化
              
               System.  out .println(calendar.get(Calendar. YEAR )+ "年" +
              
              calendar.get(Calendar.  MONTH )+ "月"  +calendar.get(Calendar. DAY_OF_MONTH )+  "日" +
              calendar.get(Calendar.  HOUR_OF_DAY )+ "时"  +calendar.get(Calendar. MINUTE )+  "分" +
              calendar.get(Calendar.  SECOND )+ "秒"  +calendar.get(Calendar. MILLISECOND )+  "毫秒" );
}
     
     
}

结果:
2013年10月21日19时24分18秒482毫秒

看到代码是不是很长,Date类还有其他类来格式化它

三.DateFormat类

     此类的作用就是用来格式化时间的

看源码:
public  abstract  class  DateFormat  extends  Format {
   public  final  static  DateFormat getInstance () {
         return  getDateTimeInstance(  SHORT ,  SHORT  );
    }

          下面是它的常用方法

          


实现代码:

           public  class  DateDemo3 {
            public  static  void  main(String[] args) {
              DateFormat dateFormat=  null ;
              DateFormat dateFormat2=  null ;
               dateFormat=DateFormat. getDateInstance(); //获取时间对象
              System.  out .println( "日期"  +dateFormat);
               dateFormat2=DateFormat. getDateTimeInstance(); //获取日期时间对象
              
              System.  out .println( "日期-时间"  +dateFormat2);
              
              System.  out .println( "格式化日期"  +dateFormat.format( new  Date()));
              System.  out .println( "格式化日期时间"  +dateFormat2.format( new  Date()));
          }
}

结果:
      日期java.text.SimpleDateFormat@ef7951d7
日期-时间java.text.SimpleDateFormat@d9235b7f
格式化日期2013-11-21
格式化日期时间2013-11-21 19:38:52

如果你还觉得不是中文的,下面的代码能满足你:

                public  class  DateDemo4 {
            public  static  void  main(String[] args) {
              DateFormat dateFormat=  null ;
              
              DateFormat dateFormat2=  null ;
                //取得日期,并设置格式
               dateFormat=DateFormat. getDateInstance(DateFormat. YEAR_FIELD ,  new  Locale( "zh"  , "CN"  ));
                //取得日期时间,并设置格式
               dateFormat2=DateFormat. getDateTimeInstance(DateFormat. YEAR_FIELD ,DateFormat.  ERA_FIELD , new  Locale( "zh"  , "CN"  ));
              
              System.  out .println( "格式化的日期"  +dateFormat.format( new  Date()));
              System.  out .println( "格式化的日期时间"  +dateFormat2.format( new  Date()));
          }

}

结果:
格式化的日期2013年11月21日
格式化的日期时间2013年11月21日 下午07时44分40秒 CST

如果你还不满意,那就只有用DateFormat的子类SimpleDateFormat

四. SimpleDateFormat类

          


例子:
public   class  DateDemo5 {
            public   static  void  main(String[] args) {
              String str=  "2013-11-21 19:51:30.345"  ; //定义日期字符串
                //定义时间日期模板1
              String pat1=  "yyyy-MM-dd HH:mm:ss.SSS"  ;
              
              String pat2=  "yyyy年MM月dd日HH时mm分ss秒SSS毫秒"  ;
              SimpleDateFormat simpleDateFormat=  new  SimpleDateFormat(pat1); //实例化模板
              SimpleDateFormat simpleDateFormat2=  new  SimpleDateFormat(pat2);
              Date d=  null  ;
                     try  {
                        d=     simpleDateFormat.parse(str);  //将字符串给的时间提取出来
                   }  catch  (ParseException e) {
                          //  TODO  Auto-generated catch block
                        e.printStackTrace();
                   }
                   System.  out  .println(simpleDateFormat2.format(d)); //将日期变为新格式
              
          }

}
结果:
2013年11月21日19时51分30秒345毫秒

补充: SimpleDateFormat类常常用来提取String类的时间
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值