java時間操作函式彙總

2021-05-22 04:58:06 字數 3865 閱讀 7220

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();

******dateformat df=new ******dateformat("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) 計算一年中的第幾星期是幾號

******dateformat df=new ******dateformat("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()

方法******dateformat df=new ******dateformat("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)...

// 分別得到兩個時間的毫秒數

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)...

// 分別得到兩個時間的毫秒數

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) ...

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) ... while (d1.get(calendar.year) != y2);

}return days;}

時間函式彙總

程式中用到與時間相關的函式時,需要在程式的頭部加入標頭檔案 include 有關時間的結構如下 1.time t long time t time of day in seconds 2.tm struct tm 有關時間的函式 time 功能 返回從公元1970年1月1日0時0分0秒到現在所經過的...

Java 時間函式

前六個月 import org.apache.commons.lang.time.dateutils dateformat format new dateformat yyyy mm string from null string end null try catch exception e str...

django 時間相關函式彙總

引入模組 使用 import datetime 來匯入 使用時前面多加 datetime.datetime即可 import datetime 相關函式 time.strftime y m dt h m s 轉換字串 timestr.strptime time1,y m d h m s 轉換utc時...