程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java中的日期和時光類和Calendar類用法詳解

Java中的日期和時光類和Calendar類用法詳解

編輯:關於JAVA

Java中的日期和時光類和Calendar類用法詳解。本站提示廣大學習愛好者:(Java中的日期和時光類和Calendar類用法詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中的日期和時光類和Calendar類用法詳解正文


Java日期和時光類簡介
Java 的日期和時光類位於 java.util 包中。應用日期時光類供給的辦法,可以獲得以後的日期和時光,創立日期和時光參數,盤算和比擬時光。
Date 類

Date 類是 Java 中的日期時光類,其結構辦法比擬多,上面是經常使用的兩個:
Date():應用以後的日期和時光初始化一個對象。
Date(long millisec):從1970年01月01日00時(格林威治時光)開端以毫秒盤算時光,盤算 millisec 毫秒。假如運轉 Java 法式的當地時區是北京時區(與格林威治時光相差 8 小時),Date dt1=new Date(1000);,那末對象 dt1 就是1970年01月01日08時00分01秒。

請看一個顯示日期時光的例子:

import java.util.Date;
public class Demo{
  public static void main(String args[]){
    Date da=new Date(); //創立時光對象
    System.out.println(da); //顯示時光和日期
    long msec=da.getTime();
    System.out.println("從1970年1月1日0時到如今共有:" + msec + "毫秒");
  }
}


運轉成果:

Mon Feb 05 22:50:05 CST 2007
從1970年1月1日0時到如今共有:1170687005390 毫秒

一些比擬經常使用的 Date 類辦法:

Date 對象表現時光的默許次序是禮拜、月、日、小時、分、秒、年。若須要修正時光顯示的格局可使用“SimpleDateFormat(String pattern)”辦法。

例如,用分歧的格局輸入時光:

import java.util.Date;
import java.text.SimpleDateFormat;
public class Demo{
  public static void main(String args[]){
    Date da=new Date();
    System.out.println(da);
    SimpleDateFormat ma1=new SimpleDateFormat("yyyy 年 MM 月 dd 日 E 北京時光");
    System.out.println(ma1.format(da));
    SimpleDateFormat ma2=new SimpleDateFormat("北京時光:yyyy 年 MM 月 dd 日 HH 時 mm 分 ss 秒");
    System.out.println(ma2.format(-1000));
  }
}

運轉成果:

Sun Jan 04 17:31:36 CST 2015
2015 年 01 月 04 日 禮拜日 北京時光
北京時光:1970 年 01 月 01 日 07 時 59 分 59 秒


Calendar 類

籠統類 Calendar 供給了一組辦法,許可把以毫秒為單元的時光轉換成一些有效的時光構成部門。Calendar 不克不及直接創立對象,但可使用靜態辦法 getInstance() 取得代表以後日期的日歷對象,如:

  Calendar calendar=Calendar.getInstance();


該對象可以挪用上面的辦法將日歷翻到指定的一個時光:

void set(int year,int month,int date);
void set(int year,int month,int date,int hour,int minute);
void set(int year,int month,int date,int hour,int minute,int second);


若要挪用有關年份、月份、小時、禮拜等信息,可以經由過程挪用上面的辦法完成:

  int get(int field);


個中,參數 field 的值由 Calendar 類的靜態常量決議。個中:YEAR 代表年,MONTH 代表月,HOUR 代表小時,MINUTE 代表分,如:

  calendar.get(Calendar.MONTH);


假如前往值為 0 代表以後日歷是一月份,假如前往 1 代表二月份,依此類推。

由 Calendar 界說的一些經常使用辦法以下表所示:

GregorianCalendar 類

GregorianCalendar 是一個詳細完成 Calendar 類的類,該類完成了公歷日歷。Calendar 類的 getInstance() 辦法前往一個 GregorianCalendar,它被初始化為默許的地區和時區下確當前日期和時光。

GregorianCalendar 類界說了兩個字段:AD 和 BC,分離代表公元前和公元後。其默許的結構辦法 GregorianCalendar() 以默許的地區和時區確當前日期和時光初始化對象,別的也能夠指定地區和時區來樹立一個 GregorianCalendar 對象,例如:

GregorianCalendar(Locale locale);
GregorianCalendar(TimeZone timeZone);
GregorianCalendar(TimeZone timeZone,Locale locale);


GregorianCalendar 類供給了 Calendar 類中一切的籠統辦法的完成,同時還供給了一些附加的辦法,個中用來斷定閏年的辦法為:

Boolean isLeapYear(int year);


假如 year 是閏年,該辦法前往 true,不然前往 false。

Java Object類
Object 類位於 java.lang 包中,是一切 Java 類的先人,Java 中的每一個類都由它擴大而來。

界說Java類時假如沒有顯示的指明父類,那末就默許繼續了 Object 類。例如:

public class Demo{
  // ...
}

現實上是上面代碼的簡寫情勢:

public class Demo extends Object{
  // ...
}


在Java中,只要根本類型不是對象,例如數值、字符和布爾型的值都不是對象,一切的數組類型,不論是對象數組照樣根本類型數組都是繼續自 Object 類。

Object 類界說了一些有效的辦法,因為是根類,這些辦法在其他類中都存在,普通是停止了重載或籠罩,完成了各自的詳細功效。
equals() 辦法

Object 類中的 equals() 辦法用來檢測一個對象能否等價於別的一個對象,語法為:

  public boolean equals(Object obj)


例如:

obj1.equals(obj2);


在Java中,數據等價的根本寄義是指兩個數據的值相等。在經由過程 equals() 和“==”停止比擬的時刻,援用類型數據比擬的是援用,即內存地址,根本數據類型比擬的是值。

留意:
equals()辦法只能比擬援用類型,“==”可以比擬援用類型及根本類型。
當用 equals() 辦法停止比擬時,對類 File、String、Date 及包裝類來講,是比擬類型及內容而不斟酌援用的能否是統一個實例。
用“==”停止比擬時,符號雙方的數據類型必需分歧(可主動轉換的數據類型除外),不然編譯失足,而用 equals 辦法比擬的兩個數據只需都是援用類型便可。
hashCode() 辦法

散列碼(hashCode)是依照必定的算法由對象獲得的一個數值,散列碼沒有紀律。假如 x 和 y 是分歧的對象,x.hashCode() 與 y.hashCode() 根本上不會雷同。

hashCode() 辦法重要用來在聚集中完成疾速查找等操作,也能夠用於對象的比擬。

在 Java 中,對 hashCode 的劃定以下:
在統一個運用法式履行時代,對統一個對象挪用 hashCode(),必需前往雷同的整數成果——條件是 equals() 所比擬的信息都不曾被修改過。至於統一個運用法式在分歧履行期所得的挪用成果,無需分歧。
假如兩個對象被 equals() 辦法視為相等,那末對這兩個對象挪用 hashCode() 必需取得雷同的整數成果。
假如兩個對象被 equals() 辦法視為不相等,那末對這兩個對象挪用 hashCode() 不用發生分歧的整數成果。但是法式員應當認識到,對分歧對象發生分歧的整數成果,有能夠晉升hashTable(前面會學到,聚集框架中的一個類)的效力。

簡略地說:假如兩個對象雷同,那末它們的 hashCode 值必定要雷同;假如兩個對象的 hashCode 值雷同,它們其實不必定雷同。在 Java 標准外面劃定,普通是籠罩 equals() 辦法應當連帶籠罩 hashCode() 辦法。
toString() 辦法

toString() 辦法是 Object 類中界說的另外一個主要辦法,是對象的字符串表示情勢,語法為:

  public String toString()


前往值是 String 類型,用於描寫以後對象的有關信息。Object 類中完成的 toString() 辦法是前往以後對象的類型和內存地址信息,但在一些子類(如 String、Date 等)中停止了 重寫,也能夠依據須要在用戶自界說類型中重寫 toString() 辦法,以前往更實用的信息。

除顯式挪用對象的 toString() 辦法外,在停止 String 與其它類型數據的銜接操作時,會主動挪用 toString() 辦法。

以上幾種辦法,在Java中是常常用到的,這裡僅作簡略引見,讓年夜家對Object類和其他類有所懂得,具體解釋請參考 Java API 文檔。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved