欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

java中關于時間日期操作的常用函數

系統 2087 0
1.計算某一月份的最大天數
Calendar time=Calendar.getInstance();
time.clear();
time.set(Calendar.YEAR,year);
time.set(Calendar.MONTH,i-1);//注意,Calendar對象默認一月為0?? ??? ??? ?
int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天數
注:在使用set方法之前,必須先clear一下,否則很多信息會繼承自系統當前時間
2.Calendar和Date的轉化
(1) Calendar轉化為Date
Calendar cal=Calendar.getInstance();
Date date=cal.getTime();
(2) Date轉化為Calendar
Date date=new Date();
Calendar cal=Calendar.getInstance();
cal.setTime(date);
3.格式化輸出日期時間
Date date=new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(df.format(date));
4.計算一年中的第幾星期
(1)計算某一天是一年中的第幾星期
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.DAY_OF_MONTH, 3);
int weekno=cal.get(Calendar.WEEK_OF_YEAR);
(2)計算一年中的第幾星期是幾號
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.WEEK_OF_YEAR, 1);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println(df.format(cal.getTime()));
輸出:
2006-01-02
5.add()和roll()的用法
(1)add()方法
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.DAY_OF_MONTH, 3);
cal.add(Calendar.DATE, -4);
Date date=cal.getTime();
System.out.println(df.format(date));
cal.add(Calendar.DATE, 4);
date=cal.getTime();
System.out.println(df.format(date));
輸出:
??? 2006-08-30
??? 2006-09-03
(2)roll方法
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.DAY_OF_MONTH, 3);
cal.roll(Calendar.DATE, -4);
date=cal.getTime();
System.out.println(df.format(date));
cal.roll(Calendar.DATE, 4);
date=cal.getTime();
System.out.println(df.format(date));
輸出:
??? 2006-09-29
??? 2006-09-03
可見,roll()方法在本月內循環,一般使用add()方法;
6.計算兩個任意時間中間的間隔天數
(1)傳進Calendar對象
/**?*/ /** 計算兩個時間之間相隔天數
?????*?
@param ?startday??開始時間
?????*?
@param ?endday?結束時間
?????*?
@return
?????
*/

????
public ? int ?getIntervalDays(Calendar?startday,Calendar?endday) ... {
????????
// 確保startday在endday之前
???????? if (startday.after(endday)) ... {
????????????Calendar?cal
= startday;
????????????startday
= endday;
????????????endday
= cal;
????????}

????????
// 分別得到兩個時間的毫秒數
???????? long ?sl = startday.getTimeInMillis();
????????
long ?el = endday.getTimeInMillis();
????????
????????
long ?ei = el - sl;????
????????
// 根據毫秒數計算間隔天數
???????? return ?( int )(ei / ( 1000 * 60 * 60 * 24 ));
????}
(2)傳進Date對象
/**?*/ /** 計算兩個時間之間相隔天數
?????*?
@param ?startday??開始時間
?????*?
@param ?endday?結束時間
?????*?
@return
?????
*/

????
public ? int ?getIntervalDays(Date?startday,Date?endday) ... {
????????
// 確保startday在endday之前
???????? if (startday.after(endday)) ... {
????????????Date?cal
= startday;
????????????startday
= endday;
????????????endday
= cal;
????????}

????????
// 分別得到兩個時間的毫秒數
???????? long ?sl = startday.getTime();
????????
long ?el = endday.getTime();
????????
????????
long ?ei = el - sl;????
????????
// 根據毫秒數計算間隔天數
???????? return ?( int )(ei / ( 1000 * 60 * 60 * 24 ));
????}
同理,可以用相同的方法計算出任意兩個時間相隔的小時數,分鐘數,秒鐘數等
注:以上方法是完全按時間計算,有時并不能令人滿意,如:
startday="2006-10-11 20:00:00"
endday="2006-10-12 8:00:00"
計算結果為0,但是我們也許相讓計算結果變為1,此時可以用如下方法實現:
在傳參之前,先設定endday的時間,如:
??? ??? endday.set(Calendar.HOUR_OF_DAY, 23);
??? ???? endday.set(Calendar.MINUTE, 59);
??? ??? endday.set(Calendar.SECOND, 59);
??? ??? endday.set(Calendar.MILLISECOND, 59);
這樣再傳進去startday,endday,則結果就如我們所愿了。不過,如果嫌以上方法麻煩,可以參考以下方法:
(3)改進精確計算相隔天數的方法
???? public ? int ?getDaysBetween?(Calendar?d1,?Calendar?d2)? ... {
????????
if ?(d1.after(d2))? ... {?? // ?swap?dates?so?that?d1?is?start?and?d2?is?end
????????????java.util.Calendar?swap? = ?d1;
????????????d1?
= ?d2;
????????????d2?
= ?swap;
????????}

????????
int ?days? = ?d2.get(Calendar.DAY_OF_YEAR)? - ?d1.get(Calendar.DAY_OF_YEAR);
????????
int ?y2? = ?d2.get(Calendar.YEAR);
????????
if ?(d1.get(Calendar.YEAR)? != ?y2)? ... {
????????????d1?
= ?(Calendar)?d1.clone();
????????????
do ? ... {
????????????????days?
+= ?d1.getActualMaximum(Calendar.DAY_OF_YEAR); // 得到當年的實際天數
????????????????d1.add(Calendar.YEAR,? 1 );
????????????}
? while ?(d1.get(Calendar.YEAR)? != ?y2);
????????}

????????
return ?days;
????}
注:getDaysBetween方法參考自:http://java.ccidnet.com/art/3741/20050611/535727_1.html?

java中關于時間日期操作的常用函數


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 夜色成人性y | 国产免费资源 | 久久网在线 | 日本高清www午色夜黄 | 山岸逢花在线观看无删减 | 无主之花在线观看 | 日韩美女一区二区三区 | 欧美日韩91 | 亚洲香蕉视频 | 久久在线观看 | 国产综合久久久久影院 | 精品美女在线观看视频在线观看 | 久久综合狠狠色综合伊人 | 日韩视频www | 久草色视频 | 91精品国产爱久久久久 | 国产精品网址你懂的 | 91久久久久久久久久久 | 久久日本精品国产精品白 | 天天干天操 | 色偷偷免费 | 色综合99| 国产九九在线视频 | 黄色影视在线 | 国产一区免费在线观看 | 99久久99热久久精品免费看 | 久久机热综合久久国产 | 日本午夜在线观看 | 一级aaaaaa片毛片在线播放 | 国产精品一码二码三码在线 | 青青草在线免费视频 | 日本高清色本在线www | 久久亚洲国产成人影院 | 久久视频这里只有精品35 | 久久99深爱久久99精品 | 国产免费网址 | youjizz欧美| 久久久久国产视频 | 99热久久这里只有精品2010 | 狠狠色丁香婷婷综合橹不卡 | 亚洲精品一区国产 |