java最全時間類及用法,java時間類用法
對於時間類,這篇主要說明各種現實情況下如何取值,怎麼定向取值,得到自己想要的時間參數。在java中時間類主要有Date、Calendar,暫時只介紹 java.util.*下的時間類,對於java.sql.*下的先不做介紹,以後在另外一篇進行補充。
首先,我們需要瞭解API下對其的介紹,讓在使用的時候明白為什麼這麼寫?而不是簡單的複製粘貼應付差事。
對於Date,很多方法已經過時遷移到了Calendar類上,但是這是最初的時間類,構造方法主要介紹兩種即
Date date= new Date();//指派至並初始話
Date date= new Date(long date)//分配 Date 對象並初始化此對象,以表示自從標準基準時間(稱為“曆元(epoch)”,即 1970 年 1 月 1 日00:00:00 GMT)以來的指定毫秒數。
可以看得出來,Date是以曆元為標準的,簡單的驗證下你的猜想。new Date().getYear() 的值是 117 然而今年是 2017 。
對於Calendar,與Date不同的是,他對Date的時間曆元進行位移,要是看括弧裡的有點暈可不看。API(Calendar 類是一個抽象類別,它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日曆欄位之間的轉換提供了一些方法,並為操作日曆欄位(例如獲得下星期的日期)提供了一些方法。瞬間可用毫秒值來表示,它是距曆元(即格林威治標準時間 1970 年 1 月 1 日的 00:00:00.000,格里高利曆)的位移量)。
Calendar不得不說的就是類方法 getInstance,Calendar 的 getInstance 方法返回一個 Calendar 對象,其日曆欄位已由當前日期和時間初始化:
Calendar rightNow = Calendar.getInstance();
這個方法你必須要知道,不然你玩什麼Calendar呢是不是?
好了下面我們介紹各種現實需要處理的,也肯定是你進入部落格要找的。
x//如何擷取目前時間參數,按yyyy-MM-dd hh:mm:ss 、yyyy-MM-dd、yyyy-MM-dd hh:mm 、yyyyMMdd等等各種情況,這個你們需要什麼自己改代碼。
public static String getCurrentTime() {Date NowDate = new Date();SimpleDateFormat formatter =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");CurrentTime = formatter.format(NowDate);return CurrentTime;}
//如何擷取某一個月的第一天和最後一天,第一天肯定容易,最後一天其實也很容易,主要用到了Calendar和SimpleDateFormat兩個類,需要注意的是月份按0---11總共十二個月,不是從1開始的,但是一個月幾號第幾天卻是從1開始的,以下是對兩個方法進行的封裝,測試結果見圖。
public static String getLastDayOfMonth(int year, int month) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month); cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DATE)); return new SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime()); } public static String getFirstDayOfMonth(int year, int month) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month); cal.set(Calendar.DAY_OF_MONTH,cal.getMinimum(Calendar.DATE)); return new SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime()); }
//如何擷取當月月份,當年年份,當前日期?較為簡單不做測試。
/*擷取當日日期*/
public static String getCurrentDay() {java.util.Date NowDate = new java.util.Date();SimpleDateFormat formatter = new SimpleDateFormat("dd");return formatter.format(NowDate);} /*擷取當月月份*/ public static String getCurrentMonth() {java.util.Date NowDate = new java.util.Date();SimpleDateFormat formatter = new SimpleDateFormat("MM");return formatter.format(NowDate);} /*擷取當前年份*/ public static String getCurrentYear() {java.util.Date NowDate = new java.util.Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy");return formatter.format(NowDate);}
本來想繼續總結的,今天先到這裡,要加班了