java中的Date類


一、Date類簡介

日期類主要包括Date類與Calendar類,這一節我們先介紹Date類, Date 表示特定的瞬間,精確到毫秒。Date類用於表示日期和時間,在計算機中的表示和我們現實世界使用差不多,但是還是有點區別的,而且還有中西文化之間的差異,所以在學習這個類之前,我們清楚Date類和現實世界之間對世界的之間的差異:

  • 年份由整數表示,但是Date類的年份由1900開始算,也就是Date類的年份為y,那么現實世界就是 y + 1900 表示。

  • 月份由從 0 至 11 的整數表示,也就是0 是一月、1 是二月等等;因此 11 是十二月。

  • 日期(一月中的某天)按通常方式由整數 1 至 31 表示,這點和現實世界一致。

  • 小時由從 0 至 23 的整數表示。因此,從午夜到 1 a.m. 的時間是 0 點,從中午到 1 p.m. 的時間是 12 點,這點和現實世界一致。

  • 分鍾按通常方式由 0 至 59 的整數表示,這點和現實世界一致。

  • 秒由 0 至 61 的整數表示;值 60 和 61 只對閏秒發生,盡管那樣,也只用在實際正確跟蹤閏秒的 Java 實現中。於按當前引入閏秒的方式,兩個閏秒在同一分鍾內發生是極不可能的,但此規范遵循 ISO C 的日期和時間約定。

  • Date可是精確到毫秒,Date的元毫秒從1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數。

二、Date類常用方法

在java中,日期時間用java.util.Date來表示,調用默認構造器Data(),將會創建一個當前系統時間的Date對象,時間精確到毫秒。Date類常用方法是:

Date()

分配 Date 對象並初始化此對象,以表示分配它的時間(精確到毫秒)。

boolean after(Date when)

測試此日期是否在指定日期之后。

boolean before(Date when)

測試此日期是否在指定日期之前。

int compareTo(Date anotherDate)

比較兩個日期的順序。

其它的還有很多獲得年月日時分秒的函數,但是這些方法都已經過期,這些方法都已經Calendar.get(...)方法替代了,當然雖然過期了,但是還是可以使用的。示例代碼如下:

public class DateStu {
    public static void main(String[] args) {
        // 獲得操作系統的當前時間
        Date date = new Date();
        Date date2=new Date(1997,6,7);
        System.out.println(date.before(date2));
        
        //如果date2大於date返回 1  等於返回 0  小於 -1
        System.out.println(date2.compareTo(date));
        //
        System.out.println("年:" + (date.getYear()+1900) + ",月:" + (date.getMonth()+1)
                + ",日:" + date.getDate() + ",星期:" + date.getDay() + ",時:"
                + date.getHours() + ",分:" + date.getMinutes() + ",秒:"
                + date.getSeconds());
        
        System.out.println("現在的毫秒:"+date.getTime()/1000);
        
        System.out.println(date.toString());
        
        System.out.println(date.toLocaleString());//本地時間格式

    }

}

 

程序輸出如下:

 

true

1

年:2014,月:2,日:20,星期:4,時:23,分:3,秒:5

現在的毫秒:1392908585

三、時間的格式化顯示

各系統在顯示時間的格式是不統一的,在中國一般采用英式日期,如“2013-02-02 17:30:24”的格式,而在美國時間的顯示則為“月-日-年”的格式“02-02-2013 17:30:24”。要想格式化時間或者把字符串轉換為Date類,可以使用java.text.Dateformat抽象類規定日期格式化的操作,具體常用的實現是java.text.SimpleDateformat類。

示例代碼如下:

//1990年  9 月 4 日
//"yyyy.MM.dd G 'at' HH:mm:ss z"  2001.07.04 AD at 12:08:56 PDT  
//HH 24 小時,hh 12小時
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd");
String dateFromt= sdf.format(date);//日期轉換為字符串
System.out.println(dateFromt);
        
//把字符串轉換為日期
String inputdateFString="2013年09月8";
try {
    Date inputDate=sdf.parse(inputdateFString);
    System.out.println(inputDate);
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

 

程序輸出如下:

Thu Feb 20 23:03:05 CST 2014

2014-2-20 23:03:05


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM