Java的calendar类用法
YEAR? 這是哪年
MONTH? 這是月(從0開始)
WEEK_OF_YEAR 今年的第幾星期
WEEK_OF_MONTH 這個月的第幾星期(從一開始)
DATE? 今天幾號
DAY_OF_MONTH? 這個月的第幾天
DAY_OF_YEAR?? 這一年的第幾天
DAY_OF_WEEK?? 這周周幾(從日開始計算,從1計算)
DAY_OF_WEEK_IN_MONTH 第幾周(從第一天開始算一周)
AM_PM? 上午還是下午0為上午,1為下午
HOUR 12小時制幾點
HOUR_OF_DAY? 24小時制幾點
MINUTE? 多少分
SECOND? 多少秒
MILLISECOND? 多少毫秒
ZONE_OFFSET? 時區(qū)
DST_OFFSET
?
?
?
?Date d=new Date();??
?SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");??
?System.out.println("今天的日期:"+df.format(d));??
?System.out.println("兩天前的日期:" + df.format(new Date(d.getTime() - (long)2 * 24 * 60 * 60 * 1000)));?
?? System.out.println("三天后的日期:" + df.format(new Date(d.getTime() + (long)3 * 24 * 60 * 60 * 1000)));
?
?
?
JAVA處理日期時間常用方法:
1.java.util.Calendar
Calendar 類是一個抽象類,它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日歷字段之間的轉(zhuǎn)換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。瞬間可用毫秒值來表示,它是距歷元(即格林威治標(biāo)準(zhǔn)時間 1970 年 1 月 1 日的 00:00:00.000,格里高利歷)的偏移量。
例:
Java代碼Calendar cal = Calendar.getInstance();//使用默認(rèn)時區(qū)和語言環(huán)境獲得一個日歷。???
cal.add(Calendar.DAY_OF_MONTH, -1);//取當(dāng)前日期的前一天.???
cal.add(Calendar.DAY_OF_MONTH, +1);//取當(dāng)前日期的后一天.???
//通過格式化輸出日期???
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");???
System.out.println("Today is:"+format.format(Calendar.getInstance().getTime()));???
System.out.println("yesterday is:"+format.format(cal.getTime()));??
得到2007-12-25日期:
?
Java代碼
Calendar calendar = new GregorianCalendar(2007, 11, 25,0,0,0);??? Date date = calendar.getTime();???
System.out.println("2007 Christmas is:"+format.format(date));??
java月份是從0-11,月份設(shè)置時要減1.
GregorianCalendar構(gòu)造方法參數(shù)依次為:年,月-1,日,時,分,秒.
取日期的部分:
Java代碼
int year =calendar.get(Calendar.YEAR);??? int month=calendar.get(Calendar.MONTH)+1;
int day =calendar.get(Calendar.DAY_OF_MONTH);???
int hour =calendar.get(Calendar.HOUR_OF_DAY);???
int minute =calendar.get(Calendar.MINUTE);???
int seconds =calendar.get(Calendar.SECOND);??
取月份要加1.
判斷當(dāng)前月份的最大天數(shù):
Java代碼Calendar cal = Calendar.getInstance();???
int day=cal.getActualMaximum(Calendar.DAY_OF_MONTH);???
System.out.println(day);??
2.java.util.Date
Java代碼java.util.Date today=new java.util.Date();???
System.out.println("Today is "+formats.format(today));??
取當(dāng)月的第一天:
Java代碼java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-01");???
java.util.Date firstDay=new java.util.Date();???
System.out.println("the month first day is "+formats.format(firstDay));??
取當(dāng)月的最后一天:
Java代碼???
Calendar cal = Calendar.getInstance();???
int maxDay=cals.getActualMaximum(Calendar.DAY_OF_MONTH);???
java.text.Format formatter3=new java.text.SimpleDateFormat("yyyy-MM-"+maxDay);???
System.out.println(formatter3.format(cal.getTime()));??
求兩個日期之間相隔的天數(shù):
Java代碼java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");???
java.util.Date beginDate= format.parse("2007-12-24");???
java.util.Date endDate= format.parse("2007-12-25");???
long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);???
System.out.println("相隔的天數(shù)="+day);??
一年前的日期:
Java代碼java.text.Format formatter=new java.text.SimpleDateFormat("yyyy-MM-dd");???
java.util.Date todayDate=new java.util.Date();???
long beforeTime=(todayDate.getTime()/1000)-60*60*24*365;???
todayDate.setTime(beforeTime*1000);???
String beforeDate=formatter.format(todayDate);???
System.out.println(beforeDate);??
一年后的日期:
Java代碼java.text.Format formatter=new java.text.SimpleDateFormat("yyyy-MM-dd");???
java.util.Date todayDate=new java.util.Date();???
long afterTime=(todayDate.getTime()/1000)+60*60*24*365;???
todayDate.setTime(afterTime*1000);???
String afterDate=formatter.format(todayDate);???
System.out.println(afterDate);??
求10小時后的時間
Java代碼java.util.Calendar Cal=java.util.Calendar.getInstance();???
Cal.setTime(dateOper);???
Cal.add(java.util.Calendar.HOUR_OF_DAY,10);???
System.out.println("date:"+forma.format(Cal.getTime()));??
求10小時前的時間
Java代碼java.util.Calendar Cal=java.util.Calendar.getInstance();???
Cal.setTime(dateOper);???
Cal.add(java.util.Calendar.HOUR_OF_DAY,-10);???
System.out.println("date:"+forma.format(Cal.getTime()));??
3.java.sql.Date
繼承自java.util.Date,是操作數(shù)據(jù)庫用的日期類型
Java代碼java.sql.Date sqlDate = new java.sql.Date(java.sql.Date.valueOf("2007-12-25").getTime());
?
日期比較:簡單的比較可以以字符串的形式直接比較,也可使用
java.sql.Date.valueOf("2007-03-08").compareTo(java.sql.Date.valueOf("2007-03-18"))方式來比較日期的大小.也可使用java.util.Date.after(java.util.Date)來比較.
相差時間:
long difference=c2.getTimeInMillis()-c1.getTimeInMillis();
相差天數(shù):long day=difference/(3600*24*1000)
相差小時:long hour=difference/(3600*1000)
相差分鐘:long minute=difference/(60*1000)
相差秒: long second=difference/1000
補(bǔ)充:
Java代碼DateFormat df=new SimpleDateFormat("yyyy-MM-dd EE hh:mm:ss");???
System.out.println(df.format(new Date()));???
Date date = new Date();???
DateFormat shortDate=DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);???
DateFormat mediumDate =DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);???
DateFormat longDate =DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);???
DateFormat fullDate =DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);???
?
system.out.println(shortDate.format(date));???
System.out.println(mediumDate.format(date));???
System.out.println(longDate.format(date));???
System.out.println(fullDate.format(date));???
?
08-4-15 下午3:24???
2008-4-15 15:24:31???
2008年4月15日 下午03時24分31秒???
2008年4月15日 星期二 下午03時24分31秒CST???
?
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, 1); // 目前時間加1個月???
System.out.println(df.format(c.getTime()));???
c.add(Calendar.HOUR, 3); // 目前時間加3小時???
System.out.println(df.format(c.getTime()));???
c.add(Calendar.YEAR, -2); // 目前時間減2年???
System.out.println(df.format(c.getTime()));
c.add(Calendar.DAY_OF_WEEK, 7); // 目前的時間加7天???
System.out.println(df.format(c.getTime()));?
總結(jié)
以上是生活随笔為你收集整理的Java的calendar类用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 部队有保密协议吗
- 下一篇: Java中的反射的应用