Java中的日期處理類

來源:互聯網
上載者:User

標籤:

在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是一個抽象類別,它也提供了幾個Factory 方法用於擷取DateFormat對象。返回的都是DateFormat對象的子類執行個體,是同一個類型的執行個體。

   雖然返回的都是同一個物件類型的執行個體,但是根據不同的Factory 方法,返回的對象在格式化時間對象時,處理不同部分的資訊。

  • 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出對象的時候指定想要看到的日期格式即可。(具體代碼上面例子有)

 

  

Java中的日期處理類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.