1、Date類簡介java
日期類主要包括Date類與Calendar類,這一節咱們先介紹Date類, Date
表示特定的瞬間,精確到毫秒。Date類用於表示日期和時間,在計算機中的表示和咱們現實世界使用差很少,可是仍是有點區別的,並且還有中西文化之間的差別,因此在學習這個類以前,咱們清楚Date類和現實世界之間對世界的之間的差別:函數
年份由整數表示,可是Date類的年份由1900開始算,也就是Date類的年份爲y,那麼現實世界就是 y + 1900 表示。學習
月份由從 0 至 11 的整數表示,也就是0 是一月、1 是二月等等;所以 11 是十二月。測試
日期(一月中的某天)按一般方式由整數 1 至 31 表示,這點和現實世界一致。spa
小時由從 0 至 23 的整數表示。所以,從午夜到 1 a.m. 的時間是 0 點,從中午到 1 p.m. 的時間是 12 點,這點和現實世界一致。操作系統
分鐘按一般方式由 0 至 59 的整數表示,這點和現實世界一致。code
秒由 0 至 61 的整數表示;值 60 和 61 只對閏秒發生,儘管那樣,也只用在實際正確跟蹤閏秒的 Java 實現中。於按當前引入閏秒的方式,兩個閏秒在同一分鐘內發生是極不可能的,但此規範遵循 ISO C 的日期和時間約定。orm
Date但是精確到毫秒,Date的元毫秒從1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數。對象
2、Date類經常使用方法blog
在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
3、時間的格式化顯示
各系統在顯示時間的格式是不統一的,在中國通常採用英式日期,如「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