JAVA時間戳-Calendar類使用(包括set,get,add方法)
Calendar 類是一個抽象類,它為特定時間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日歷字段之間的轉(zhuǎn)換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。
瞬間可用毫秒值來表示,它是距歷元(即格林威治標準時間 1970 年 1 月 1 日的 00:00:00.000,格里高利歷)的偏移量。
一、Calendar類
想要取得時間,首先使用Calendar的getInstance()取得一個Calendar的實例,例如:
Calendar c = Calendar.getInstance();
創(chuàng)建 Calendar 對象不能使用 new 關(guān)鍵字,因為 Calendar 類是一個抽象類,但是它提供了一個 getInstance() 方法來獲得 Calendar類的對象。
getInstance() 方法返回一個 Calendar 對象,其日歷字段已 由當前日期和時間初始化。
Calendar 類中定義了許多常量,分別表示不同的意義。
- Calendar.YEAR:年份。
- Calendar.MONTH:月份。
- Calendar.DATE:日期。
- Calendar.DAY_OF_MONTH:日期,和上面的字段意義完全相同。
- Calendar.HOUR:12小時制的小時。
- Calendar.HOUR_OF_DAY:24 小時制的小時。
- Calendar.MINUTE:分鐘。 Calendar.SECOND:秒。
- Calendar.DAY_OF_WEEK:星期幾。
二、Calendar類的常用方法
2.1 get()方法
獲取值
cal.get(Calendar.YEAR);//年 cal.get(Calendar.MONTH) + 1;//月(Calendar在月份上的常數(shù)值從0開始的) cal.get(Calendar.DATE);//日 cal.get(Calendar.HOUR_OF_DAY);//時 cal.get(Calendar.MINUTE);//分 cal.get(Calendar.SECOND);//秒 cal.get(Calendar.DAY_OF_WEEK);//星期(Locale.ENGLISH情況下,周日是1) cal.get(Calendar.DAY_OF_WEEK);//獲取當前是一周中的第幾天(從0開始計算) cal.get(Calendar.DAY_OF_MONTH);//獲取當前是一月的第幾天 cal.get(Calendar.DAY_OF_YEAR);//獲取當前時一年中的第幾天
示例代碼如下:
public class CalandarTest { public static void main(String[] args) { Calendar cal=Calendar.getInstance(); //獲取當前年 int year= cal.get(Calendar.YEAR); System.out.println(year); //獲取當前月(從0開始計算) int month= cal.get(Calendar.MONTH); System.out.println(month); //獲取當前日 int date= cal.get(Calendar.DATE); System.out.println(date); //獲取當時小時 int hour= cal.get(Calendar.HOUR); System.out.println(hour); //獲取當前分鐘數(shù) int minute= cal.get(Calendar.MINUTE); System.out.println(minute); //獲取當前秒數(shù) int second= cal.get(Calendar.SECOND); System.out.println(second); //獲取當前是一周中的第幾天(從0開始計算) int wday= cal.get(Calendar.DAY_OF_WEEK); System.out.println(wday); //獲取當前是一月的第幾天 int mday= cal.get(Calendar.DAY_OF_MONTH); System.out.println(mday); //獲取當前時一年中的第幾天 int yday= cal.get(Calendar.DAY_OF_YEAR); System.out.println(yday); } }
2.2 set()方法
設(shè)置值(返回為日期對象)
cal.set(2023, 7, 15, 9, 44, 51);//年月日時分秒(月份0代表1月) cal.set(Calendar.YEAR, 2023);//年 cal.set(Calendar.MONTH, 7);//月(月份0代表1月) cal.set(Calendar.DATE, 11);//日 cal.set(Calendar.HOUR_OF_DAY, 15);//時 cal.set(Calendar.MINUTE, 33);//分 cal.set(Calendar.SECOND, 32);//秒
示例代碼如下:
public class CalandarTest { public static void main(String[] args) { Calendar cal=Calendar.getInstance(); //設(shè)置當前年 cal.set(Calendar.YEAR,2022); System.out.printf("%tY%n",cal); //設(shè)置當前月(從0開始計算) cal.set(Calendar.MONTH,5); System.out.printf("%tm%n",cal); //設(shè)置當前日 cal.set(Calendar.DATE,5); System.out.printf("%td%n",cal); //設(shè)置當時小時 cal.set(Calendar.HOUR,14); System.out.printf("%tl%n",cal); //設(shè)置當前分鐘數(shù) cal.set(Calendar.MINUTE,50); System.out.printf("%tM%n",cal); //設(shè)置當前秒數(shù) cal.set(Calendar.SECOND,12); System.out.printf("%tS%n",cal); } }
輸出結(jié)果如下:
2.3 add()方法
運算值(在獲取的當前時間進行運算,返回值為日期對象)
cal.add(Calendar.YEAR, 1);//年 cal.add(Calendar.MONTH, 1);//月 cal.add(Calendar.DATE, 1);//日 cal.add(Calendar.HOUR_OF_DAY, -1);//時 cal.add(Calendar.MINUTE, 1);//分 cal.add(Calendar.SECOND, 1);//秒 cal.add(Calendar.DATE, 7);//周
示例代碼如下:
public class CalandarTest { public static void main(String[] args) { Calendar cal=Calendar.getInstance(); //以當前年計算 cal.add(Calendar.YEAR,2022); System.out.printf("%tY%n",cal); //以當前月(月份不從0開始計算)計算 cal.add(Calendar.MONTH,5); System.out.printf("%tm%n",cal); //以當前日計算 cal.add(Calendar.DATE,-5); System.out.printf("%td%n",cal); //以當時小時小時 cal.add(Calendar.HOUR_OF_DAY,14); System.out.printf("%tl%n",cal); //以當前分鐘數(shù)計算 cal.add(Calendar.MINUTE,-50); System.out.printf("%tM%n",cal); //以當前秒數(shù)計算 cal.add(Calendar.SECOND,12); System.out.printf("%tS%n",cal); } }
輸出結(jié)果如下:
三、格式化日期輸出
Calendar類返回的時間類型為對象類型,為了方便輸出展示,在輸出時可以將日期格式化。
轉(zhuǎn)換符 | 說明 |
%tH | 小時(00-23) |
%tL | 小時(01-12) |
%tk | 小時(0-23) |
%tM | 分鐘(00-29) |
%tS | 秒(00-59) |
%tL | 毫秒(000-999) |
%tN | 微秒(000000000-999999999) |
%tp | 當前語言環(huán)境下的上午/下午 |
%ts | 從1970-01-01 00:00:00到現(xiàn)在的秒 |
%tQ | 從1970-01-01 00:00:00到現(xiàn)在的毫秒 |
%tF | 年-月-日 |
%tT | 時-分-秒 |
%tD | 月/日/年 |
%tc | 全部時間日期 |
%tR | 時分 |
%tr | 時分秒PM |
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
高內(nèi)聚低耦合原則_動力節(jié)點Java學院整理
耦合度就是某模塊(類)與其它模塊(類)之間的關(guān)聯(lián)、感知和依賴的程度,是衡量代碼獨立性的一個指標,也是軟件工程設(shè)計及編碼質(zhì)量評價的一個標準2017-08-08Java中有界隊列的飽和策略(reject policy)原理解析
這篇文章主要介紹了Java中有界隊列的飽和策略(reject policy)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04java自定義ClassLoader加載指定的class文件操作
這篇文章主要介紹了java自定義ClassLoader加載指定的class文件操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02