Date和Calendar的區別以及對他們簡單的使用
阿新 • • 發佈:2018-12-30
1、什麼是Date和Calendar
a、Date類表示的是特定的,瞬間的,它能精確毫秒。
b、Calendar它是一種抽象類,相比Date它在操作日曆的時候提供了一些方法來操作日曆欄位
2、Date和Calendar常見的使用方式
a、Date
Date date = new Date(); System.out.println("毫秒:"+date.getTime());//輸入毫秒 //時間轉字串 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = sdf.format(date); System.out.println("時間轉字串:"+time); //利用字串來轉時間格式(記得丟擲異常) String time02 = "2018-09-05"; SimpleDateFormat sdf2 = new SimpleDateFormat ("yyyy-MM-dd"); Date date2 = sdf2.parse(time02); System.out.println("字串轉時間格式:"+date2);
b、Calendar
// 使用預設時區和語言環境獲得一個日曆 Calendar cal = Calendar.getInstance(); // 賦值時年月日時分秒常用的6個值,注意月份下標從0開始,所以取月份要+1 System.out.println("年:" + cal.get(Calendar.YEAR)); System.out.println("月:" + (cal.get(Calendar.MONTH) + 1)); System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH)); System.out.println("時:" + cal.get(Calendar.HOUR_OF_DAY)); System.out.println("分:" + cal.get(Calendar.MINUTE)); System.out.println("秒:" + cal.get(Calendar.SECOND)); //手動設定某個日期 Calendar cal02 = Calendar.getInstance(); //注意,設定時間的時候月份的下標是在0開始的 //設定時間不一定要這6個引數3個引數也是可以的 cal02.set(2018,9,1,12,0,0);//二零一八年十月一號十二點 System.out.println(cal02.getTime());
注意:
在大多數情況下,date要實現的功能都可以通過calendar來實現的(少數情況除外),在這上面只是列出的常用方法,感興趣的程式猿可以通過這些方法來簡單的去使用Calendar和Date,在使用的過程當中一點要注意程式碼的中的註釋哦。
3、Date和Calendar有什麼區別
區別:比較喲明顯的區別是Date是日期,Calendar是日曆,Date是類,Calendar是抽象類。當然,你也可以覺得Calendar是Date的加強版
4、在開發過程當中,使用Date和Calendar哪種的效率更高
這個就要看專案的具體需求了,不過在當前的開發環境中,Calendar使用的情況是比Date更多,畢竟它提供的方法大大的方便了我們程式猿完成跟時間有關的功能,但是這並不意味這Date就會淘汰,畢竟他們兩個還是有區別的,筆者只是認為Calendar用起來更好。