Java基礎(chǔ)學(xué)習(xí)08-日期

在JAVA中有六個與時間有關(guān)的類:

1.  java.util.Date  
2.  java.sql.Date    
3.  java.sql.Time    
4.  java.sql.Timestamp  
5.  java.text.SimpleDateFormat  
6.  java.util.Calendar

常用時間設(shè)置類

java.util.Date
java.util.Date 是java.sqlDate,Time,Timestamp的父類,Java中的時間使用標(biāo)準(zhǔn)類庫的java.util.Date,其表示特定的瞬間逮诲,精確到毫秒燎悍。是用距離一個固定時間點(diǎn)的毫秒數(shù)(可正可負(fù)赁酝,long類型)表達(dá)一個特定的時間點(diǎn)葵姥。從 JDK 1.1 開始,應(yīng)該使用 Calendar 類實現(xiàn)日期和時間字段之間轉(zhuǎn)換,使用 DateFormat 類來格式化和分析日期字符串琅豆。因為Date的設(shè)計具有"千年蟲"以及"時區(qū)"的問題愉豺,所以Date中的大部分方法已經(jīng)不建議使用了,它們都被java.util.Calendar類所取代

java.text.DateFormat(抽象類)
DateFormat 是日期/時間格式化子類的抽象類茫因,它以與語言無關(guān)的方式格式化并分析日期或時間蚪拦。日期/時間格式化子類(如 SimpleDateFormat)允許進(jìn)行格式化(日期 -> 文本)、分析(文本-> 日期)和標(biāo)準(zhǔn)化冻押。將日期表示為 Date 對象驰贷,或者表示為從 GMT(格林尼治標(biāo)準(zhǔn)時間)1970 年1 月 1 日 00:00:00 這一刻開始的毫秒數(shù)。 不過DateFormat的格式化Date的功能有限翼雀,沒有SimpleDateFormat強(qiáng)大饱苟;但DateFormat是SimpleDateFormat的父類。

java.text.SimpleDateFormat (DateFormat的直接子類)
SimpleDateFormat 是一個以與語言環(huán)境相關(guān)的方式來格式化和分析日期的具體類狼渊。
SimpleDateFormat 使得可以選擇任何用戶定義的日期-時間格式的模式箱熬。但是,仍然建議通過 DateFormat 中的 getTimeInstance狈邑、getDateInstance 或 getDateTimeInstance 來新的創(chuàng)建日期-時間格式化程序城须。
日期格式字符串如下:

20171220135015076.png

(4)、java.util.Calendar(抽象類)
java.util.Calendar 類用于封裝日歷信息米苹,其主要作用在于其方法可以對時間分量進(jìn)行運(yùn)算糕伐。
Calendar 類是一個抽象類,它為特定瞬間與一組諸如 YEAR蘸嘶、MONTH良瞧、DAY_OF_MONTH、HOUR 等日歷字段之間的轉(zhuǎn)換提供了一些方法训唱,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法褥蚯。瞬間可用毫秒值來表示,它是距歷元(即格林威治標(biāo)準(zhǔn)時間 1970 年 1 月 1 日的 00:00:00.000况增,格里高利歷)的偏移量赞庶。
與其他語言環(huán)境敏感類一樣,Calendar 提供了一個類方法 getInstance澳骤,以獲得此類型的一個通用的對象歧强。Calendar 的 getInstance 方法返回一個 Calendar 對象,其日歷字段已由當(dāng)前日期和時間初始化为肮。

常用代碼

日期轉(zhuǎn)字符串摊册、字符串轉(zhuǎn)日期

/*
*日期轉(zhuǎn)字符串、字符串轉(zhuǎn)日期
*/
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
//設(shè)置為東八區(qū)
dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
try {  
    //1颊艳、日期轉(zhuǎn)字符串  
    Calendar calendar = Calendar.getInstance();  
    Date date = calendar.getTime();  
    String dateStringParse = dateFormat.format(date);  
    System.out.println(dateStringParse);  
    //2茅特、字符串轉(zhuǎn)日期  
    String dateString = "2021-01-07 16:53:08";  
    Date dateParse = dateFormat.parse(dateString);  
    System.out.println(dateParse);  
} catch (ParseException e) {  
    e.printStackTrace();  
}  

獲取時間戳

Date date = new Date();  
System.out.println(date.getTime());  

獲取帶周的時間格式

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
Date d1 = df.parse("2017-12-20 12:19:19");  
//指定日期  
Calendar cal = df.getCalendar();  
//當(dāng)前時間  
Calendar cas = Calendar.getInstance();  
int year = cal.get(Calendar.YEAR);//獲取年份  
int month=cal.get(Calendar.MONTH);//獲取月份  
int day=cal.get(Calendar.DATE);//獲取日  
int hour=cal.get(Calendar.HOUR);//小時  
int minute=cal.get(Calendar.MINUTE);//分  
int second=cal.get(Calendar.SECOND);//秒  
int WeekOfYear = cal.get(Calendar.DAY_OF_WEEK);//一周的第幾天  
System.out.println("現(xiàn)在的時間是:公元"+year+"年"+month+"月"+day+"日      "+hour+"時"+minute+"分"+second+"秒     星期"+WeekOfYear);  

獲取當(dāng)前時間顯示蟆沫,上午,下午

Date date = new Date();  
DateFormat df1 = DateFormat.getDateInstance();//日期格式温治,精確到日  
System.out.println(df1.format(date));  
DateFormat df2 = DateFormat.getDateTimeInstance();//可以精確到時分秒  
System.out.println(df2.format(date));  
DateFormat df3 = DateFormat.getTimeInstance();//只顯示出時分秒  
System.out.println("只顯示出時分秒:"+df3.format(date));  
DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //顯示日期,周戒悠,上下午熬荆,時間(精確到秒)  
System.out.println("顯示日期,周绸狐,上下午卤恳,時間(精確到秒):"+df4.format(date));  
DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //顯示日期,上下午,時間(精確到秒)  
System.out.println("顯示日期,上下午寒矿,時間(精確到秒):"+df5.format(date));  
DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //顯示日期突琳,上下午,時間(精確到分)  
System.out.println("顯示日期,上下午,時間(精確到分):"+df6.format(date));  
DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //顯示日期符相,時間(精確到分)  
System.out.println("顯示日期拆融,時間(精確到分):"+df7.format(date));  

兩個日期相差多少小時,分鐘啊终,毫秒

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
Date d1 = df.parse("2017-12-20 12:19:19");  
Date d2 = df.parse("2017-12-20 11:40:34");  
long nd = 1000 * 24 * 60 * 60;  
long nh = 1000 * 60 * 60;  
long nm = 1000 * 60;  
long ns = 1000;  
// 獲得兩個時間的毫秒時間差異  
long diff = d1.getTime() - d2.getTime();  
// 計算差多少天  
long day = diff / nd;  
// 計算差多少小時  
long hour = diff % nd / nh;  
// 計算差多少分鐘  
long min = diff % nd % nh / nm;  
// 計算差多少秒//輸出結(jié)果  
long sec = diff % nd % nh % nm / ns;  
System.out.println(day + "天" + hour + "小時" + min + "分鐘"+ sec + "秒");  
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末镜豹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蓝牲,更是在濱河造成了極大的恐慌趟脂,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件例衍,死亡現(xiàn)場離奇詭異昔期,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)佛玄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門硼一,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人翎嫡,你說我怎么就攤上這事欠动。” “怎么了惑申?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵具伍,是天一觀的道長。 經(jīng)常有香客問我圈驼,道長人芽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任绩脆,我火速辦了婚禮萤厅,結(jié)果婚禮上橄抹,老公的妹妹穿的比我還像新娘。我一直安慰自己惕味,他們只是感情好楼誓,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著名挥,像睡著了一般疟羹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上禀倔,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天榄融,我揣著相機(jī)與錄音,去河邊找鬼救湖。 笑死愧杯,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鞋既。 我是一名探鬼主播力九,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼邑闺!你這毒婦竟也來了畏邢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤检吆,失蹤者是張志新(化名)和其女友劉穎舒萎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蹭沛,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡臂寝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了摊灭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咆贬。...
    茶點(diǎn)故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖帚呼,靈堂內(nèi)的尸體忽然破棺而出掏缎,到底是詐尸還是另有隱情,我是刑警寧澤煤杀,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布眷蜈,位于F島的核電站,受9級特大地震影響沈自,放射性物質(zhì)發(fā)生泄漏酌儒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一枯途、第九天 我趴在偏房一處隱蔽的房頂上張望忌怎。 院中可真熱鬧籍滴,春花似錦、人聲如沸榴啸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸥印。三九已至灰瞻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辅甥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工燎竖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留璃弄,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓构回,卻偏偏與公主長得像夏块,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子纤掸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容