java里面常用的日期處理類:
java里面常用的日期處理類主要有:
- Date
- Calendar
- TimeZone
Date類
date類一般用來處理日期和時間,是java.util.*下的包
主要包含以下構(gòu)造器:
- Date():生成一個代表當(dāng)前日期時間的Date對象,該構(gòu)造器調(diào)用底層的system.current.currenttimemillis()函數(shù),所以得到的是一個時間戳對象
- Date(long date):根據(jù)long樹脂生成一個時間戳對象
- boolean after(Date when)測試日期是否在指定日期when之后
- boolean before(Date when):測試該日期是否在指定的日期when之前
- int compareTo(Date):比較兩個日期的大小,后面的時間大于前面的時間的時候返回-1
- boolean equals(Object obj):比較兩個時間是否相等,相等返回true
- long getTime():返回時間對應(yīng)的long時間戳
- void setTime(long time):設(shè)置該date對象的時間
Calendar類
Calendar類是一個抽象類,用于表示日歷。因為它是一個抽象類,所以不能直接創(chuàng)建實例,只能通過創(chuàng)建Calendar子類,然后將它作為calendar對象使用。但是它提供了幾個靜態(tài)getInstance()方法來獲取Calendar對象,這些方法根據(jù)timezone ,locate來創(chuàng)建calendar對象
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(date)
Calendar類提供了大量訪問,修改日期時間的方法,常用的方法如下:
- void add(int field,int amount):根據(jù)日歷的規(guī)則,為給定的日歷字段添加或者減去指定的時間量
- int get(int field)返回指定日歷字段值
- int getActualmaximum(int field)返回指定日歷字段可能擁有的最大值
- int getActualMinimum(int field)返回指定日歷字段可能擁有的最小值
- void roll(int field,int amount)與add方法類似,區(qū)別在于加上amount后超過了該字段所能表示的最大范圍時,也不會向上一個字段進(jìn)位
- void set(int field,int value)將日歷字段設(shè)置為給定值
- void set(int year,int month,int date)設(shè)置calendar對象的年,月,日三個字段的值
- void set(int year,int month,int date,int hourOfDay,int minute,int second)
TimeZone類
TimeZone類是用來設(shè)置時區(qū)的,計算機(jī)中磨人實現(xiàn)是以格林威治時間為標(biāo)準(zhǔn)時間,所以和我們采用的北京時間(東八區(qū))有8個小時的時間差,所以我們需要重新設(shè)定時區(qū)
timezone類同樣是抽象類,不能夠直接聲明實例對象,但是提供了調(diào)用它的靜態(tài)方法來獲取實例:getDefault()或者getTimeZone()得到timezone實例,getTimeZone可以根據(jù)id獲取對應(yīng)的時區(qū)
主要的方法有:
- static String[] getAvailableIDs()獲取java所支持的所有時區(qū)id
- static TimeZone getDefault()獲得運(yùn)行機(jī)器上默認(rèn)的時區(qū)
- String getDisplayName()獲取該timezone對象的時區(qū)名稱
- String getID()獲得該時區(qū)的id
- static TimeZone getTimeZone(String ID)獲取指定id對應(yīng)的timezone對象