Date類 和 SimpleDateFormat類簡述
一 Date 類
在程式開發中,經常需要處理日期和時間的相關資料,此時我們可以使用 java.util 包中的Date類。這個類最主要的作用就是獲取當前時間,使用Date類代表當前系統時間:使用Date類的預設構造方法創建出來的物件就代表當前的時間,由於Date類覆蓋了toString()方法。所以可以直接輸出Date型別的物件,我們來看下Date的類的使用:
Date d=new Date();//使用預設的構造方法建立Date物件
System.out.println(d);//輸出Date物件
使用Date類的預設無參構造方法創建出的物件就代表當前時間,我們可以直接輸出Date物件顯示當前的時間,顯示的架構如下:Fri Apr 24 13:57:05 CST 2015 Fri 代表 星期五,Apr代表四月, 24 代表 24號 CST 代表 中國標準時間也就是北京時間,東八區。
1 Date 類使用之Date代表當前時間
使用Date類代表當前系統時間:使用Date類的預設構造方法創建出來的物件就代表當前的時間,由於Date類覆蓋了toString()方法。所以可以直接輸出Date型別的物件
Date date = new Date();
System.out.println(date);
輸出 :Sun Aug 28 10:23:06 CST 2016
2 Date 類使用之Date代表指定時間
使用Date類代表指定時間:使用帶參的構造方法,可以構造指定日期的Date類物件,Date類中年份的引數應該是實際需要代表的年份減去1900,實際需要代表的月份減去1以後的值。
Date date = new Date(2016-1900,8-1,28);
System.out.println(date);
輸出 :Sun Aug 28 00:00:00 CST 2016 代表的日期就是2016年8月28號
從上面的輸出結果中,我們發現,預設的時間格式不是很友好(也不是我們想要顯示的),此時我們就用到了 java.text 包中的 SimpledDateFormat 類 大顯身手了,可以使用 SimpleDateFormat 來對日期時間進行格式化,如可以將日期裝換為指定格式的文字,也可將文字轉換為日期。
二 SimpleDateFormat類
使用 Date 和 SimpleDateFormat 類表示時間。Date類的預設時間格式不友好,可以使用 SimpleDateFormat 來對日期時間進行格式化,如可以將日期轉換為指定格式的文字,也可將文字轉換為日期。 SimpleDateFormat類常用parse()和format()兩種方法可以進行時間格式格式化。parse()和format()兩種方法是有區別的,parse()返回的是一個Date型別(系統日期格式)資料,format返回的是一個StringBuffer型別(文字格式)的資料。
1 parse()方法
SimpleDateFormat中的parse方法可以把String型的字串轉換成特定格式的Date型別(日期型別) 即 字串 -> Date型別
使用步驟:
1.建立日期格式的字串
String day="2015年04月24日 14:13:50";
2.建立SimpleDateFomat物件,指定字串的日期格式
SimpleDateFormat df=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
3.呼叫 parse() 方法,將字串轉換為日期
Date d=df.parse(day);
4.輸出
System.out.println("當前時間:"+d);
5.結果
Fri Apr 24 14:13:50 CST 2015
如下例:
String str = "2013-01-21 15:10:20";
Date date = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd-HH:mm:ss");
try {
date = sdf.parse(str);
} catch (ParseException e) {
System.out.println(e.getMessage());
}
System.out.println(date); //輸出指定日期
System.out.println(date.getTime()); //輸出指定日期 距離 xxx 的毫秒數
2 format()方法
SimpleDateFormat中的format方法可以把Date型的字串轉換成特定格式的String型別 即 Date型別 -> 字串
使用步驟:
1.建立Date物件,便是當前時間
Date d = new Date();
2.建立 SimpleDateFormat 物件,指定目標格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm");
3.呼叫format()方法,格式化時間,轉換為指定格式字串
String today = sdf.format(d);
4.輸出轉換後的字串
System.out.println(today);
5.結果是 : 2014-06-11 09:55:48
如下例:
String str = "2013-01-21 15:10:20";
Date date = null;
SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
String a=dateformat.format(new Date());
System.out.println("時間:"+a);
3 日期時間格式與毫秒數的相互轉換
輸入日期 轉換為 毫秒數,使用Date方法
// 先用SimpleDateFormat.parse() 方法將日期字串轉化為目標Date格式,通過Date.getTime()方法,將其轉化為毫秒數
String date = "2017-06-27 15-20-00";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");//24小時制
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");//12小時制
long time = simpleDateFormat.parse(date).getTime();
System.out.println(time);
輸出 : 121456789..... 當前時間毫秒數