上節(jié)我們聊到了「時間格式化字符」汉矿,實際上它也為我們提供其他的便利崎坊。
? ? 比如:獲得當(dāng)前時間是今年的第幾天。代碼如下:
public?class?? Test {
????public?static?void?? main(String[] args) {
?????? SimpleDateFormat s1 =?new?? SimpleDateFormat("D");
?????? String daytime = s1.format(new?? Date());
?????? System.out.println(daytime);
??? }
}
Calendar日歷類
Calendar?類是一個抽象類洲拇,為我們提供了關(guān)于日期計算的相關(guān)功能奈揍,比如:年、月赋续、日男翰、時、分纽乱、秒的展示和計算蛾绎。
GregorianCalendar
?是Calendar
?的一個具體子類,提供了世界上大多數(shù)國家/地區(qū)使用的標(biāo)準(zhǔn)日歷系統(tǒng)鸦列。?
菜鳥雷區(qū)
注意月份的表示租冠,一月是0,二月是1薯嗤,以此類推顽爹,12月是11。?因為大多數(shù)人習(xí)慣于使用單詞而不是使用數(shù)字來表示月份骆姐,這樣程序也許更易讀镜粤,父類Calendar使用常量來表示月份:JANUARY、FEBRUARY等等玻褪。
【示例1】GregorianCalendar類和Calendar類的使用
package?? com.bjsxt.gao;
import?? java.util.*;?
public?class?? TestCanlendar {
????public?static?void?? main(String[] args) {??
???????//得到相關(guān)日期元素
?????? GregorianCalendar calendar =?new?? GregorianCalendar(2999,10,9,22,10,50);
???????int?? year = calendar.get(Calendar.YEAR);??????????//打尤饪省:1999
???????int?? month = calendar.get(Calendar.MONTH);?????//打印:10
???????int?? day = calendar.get(Calendar.DAY_OF_MONTH);???//打哟洹:9
???????int?? day2 = calendar.get(Calendar.DATE); ??????//打踊剖:9??
//??日:Calendar.DATE和Calendar.DAY_OF_MONTH同義
???????int?? date = calendar.get(Calendar.DAY_OF_WEEK);???//打印:3??
//??星期幾???????這里是:1-7.周日是1庸诱,周一是2捻浦,。桥爽。朱灿。周六是7
?????? System.out.println(year);
?????? System.out.println(month);
?????? System.out.println(day);
?????? System.out.println(day2);
?????? System.out.println(date);
???????//設(shè)置日期
?????? GregorianCalendar calendar2 =?new?? GregorianCalendar();
?????? calendar2.set(Calendar.YEAR, ? 2999);
?????? calendar2.set(Calendar.MONTH, ? Calendar.FEBRUARY);??//月份數(shù):0-11
?????? calendar2.set(Calendar.DATE, ? 3);
?????? calendar2.set(Calendar.HOUR_OF_DAY, ? 10);
?????? calendar2.set(Calendar.MINUTE, ? 20);
?????? calendar2.set(Calendar.SECOND, ? 23);
???????printCalendar?(calendar2);?
???????//日期計算
?????? GregorianCalendar calendar3 =?new?? GregorianCalendar(2999,10,9,22,10,50);
?????? calendar3.add(Calendar.MONTH, ? -7);??//月份減7
?????? calendar3.add(Calendar.DATE, ? 7);??//增加7天
???????printCalendar?(calendar3);
???????//日歷對象和時間對象轉(zhuǎn)化
?????? Date?d?= calendar3.getTime();
?????? GregorianCalendar calendar4 =?new?? GregorianCalendar();
?????? calendar4.setTime(new?? Date());? ? ?
????????long??g?=? ? System.currentTimeMillis();
??? }
????static?void?? printCalendar (Calendar calendar){
???????int?? year = calendar.get(Calendar.YEAR);
???????int?? month = calendar.get(Calendar.MONTH)+1;
???????int?? day = calendar.get(Calendar.DAY_OF_MONTH);
???????int?? date = calendar.get(Calendar.DAY_OF_WEEK)-1; ??//星期幾?
?????? String week =?""+((date==0)?"日":date);? ?
???????int?? hour = calendar.get(Calendar.HOUR);
???????int?? minute = calendar.get(Calendar.MINUTE);
???????int?? second = calendar.get(Calendar.SECOND);
?????? System.out.printf("%d年%d月%d日,星期%s ? %d:%d:%d\n",year,month,day,week,hour,minute,second);
??? }??
}?
示例1 ?運行效果圖
「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記。筆者江湖人稱 Mr. G钠四,10年Java研發(fā)經(jīng)驗盗扒,曾在神州數(shù)碼、航天院某所研發(fā)中心從事軟件設(shè)計及研發(fā)工作缀去,從小白逐漸做到工程師侣灶、高級工程師、架構(gòu)師缕碎。精通Java平臺軟件開發(fā)褥影,精通JAVAEE,熟悉各種流行開發(fā)框架咏雌。
筆記包含從淺入深的六大部分:
A-Java入門階段
B-數(shù)據(jù)庫從入門到精通
C-手刃移動前端和Web前端
D-J2EE從了解到實戰(zhàn)
E-Java高級框架精解
F-Linux和Hadoop?