常用工具類系列之DateUtil

2021-09-07 15:38:07 字數 3860 閱讀 8335

//當前時間

date date = dateutil.date();

//當前時間

date date2 = dateutil.date(calendar.getinstance());

//當前時間 date date3 = dateutil.date(system.currenttimemillis()); //當前時間字串,格式:yyyy-mm-dd hh:mm:ss string now = dateutil.now(); //當前日期字串,格式:yyyy-mm-dd string today= dateutil.today();

字串轉日期

dateutil.parse方法會自動識別一些常用格式,包括:

yyyy-mm-dd hh:mm:ss

yyyy-mm-dd

hh:mm:ss

yyyy-mm-dd hh:mm

yyyy-mm-dd hh:mm:ss.sss

string datestr = "2017-03-01";

date date = dateutil.parse(datestr);

我們也可以使用自定義日期格式轉化:

string datestr = "2017-03-01";

date date = dateutil.parse(datestr, "yyyy-mm-dd");

格式化日期輸出
string datestr = "2017-03-01";

date date = dateutil.parse(datestr);

string format = dateutil.format(date, "yyyy/mm/dd"); assert.assertequals("2017/03/01", format); //常用格式的格式化 string formatdate = dateutil.formatdate(date); assert.assertequals("2017-03-01", formatdate); string formatdatetime = dateutil.formatdatetime(date); assert.assertequals("2017-03-01 00:00:00", formatdatetime); string formattime = dateutil.formattime(date); assert.assertequals("00:00:00", formattime);

獲取date物件的某個部分
date date = dateutil.date();

//獲得年的部分

dateutil.year(date);

//獲得月份,從0開始計數

dateutil.month(date);

//獲得月份列舉

dateutil.monthenum(date);

//.....

開始和結束時間
string datestr = "2017-03-01 22:33:23";

date date = dateutil.parse(datestr); //一天的開始 date beginofday = dateutil.beginofday(date); assert.assertequals("2017-03-01 00:00:00", beginofday.tostring()); //一天的結束 date endofday = dateutil.endofday(date); assert.assertequals("2017-03-01 23:59:59", endofday.tostring());

日期時間偏移

日期或時間的偏移指針對某個日期增加或減少分、小時、天等等,達到日期變更的目的。hutool也針對其做了大量封裝

string datestr = "2017-03-01 22:33:23";

date date = dateutil.parse(datestr);

date newdate = dateutil.offset(date, datefield.day_of_month, 2); assert.assertequals("2017-03-03 22:33:23", newdate.tostring()); //常用偏移 datetime newdate2 = dateutil.offsetday(date, 3); assert.assertequals("2017-03-04 22:33:23", newdate2.tostring()); //常用偏移 datetime newdate3 = dateutil.offsethour(date, -3); assert.assertequals("2017-03-01 19:33:23", newdate3.tostring());

針對當前時間,提供了簡化的偏移方法(例如昨天、上週、上個月等):

//昨天

dateutil.yesterday()

//明天

dateutil.tomorrow()

//上週

dateutil.lastweek()

//下週

dateutil.nextweek()

//上個月 dateutil.lastmonth() //下個月 dateutil.nextmonth()

日期時間差

有時候我們需要計算兩個日期之間的時間差(相差天數、相差小時數等等),hutool將此類方法封裝為between方法:

string datestr1 = "2017-03-01 22:33:23";

date date1 = dateutil.parse(datestr1);

string datestr2 = "2017-04-01 23:33:23"; date date2 = dateutil.parse(datestr2); long betweenday = dateutil.between(date1, date2, dateunit.day); assert.assertequals(31, betweenday);//相差乙個月,31天

格式化時間差

有時候我們希望看到易讀的時間差,比如xx天xx小時xx分xx秒,此時使用dateutil.formatbetween方法:

表示精確到分

string formatbetween = dateutil.formatbetween(between, level.minute);

//輸出:31天1小時

console.log(formatbetween);

計時器

計時器用於計算某段**或過程花費的時間

timeinterval timer = dateutil.timer();

//---------------------------------

//-------這是執行過程

//---------------------------------

timer.interval();//花費毫秒數

timer.intervalrestart();//返回花費時間,並重置開始時間 timer.intervalminute();//花費分鐘數

其它
//年齡

dateutil.ageofnow("1990-01-30");

//是否閏年

dateutil.isleapyear(2017);

常用工具類

本講內容 常用工具類 陸續更新 author administrator public static context context public void oncreate public static context getcontext 2 提供所有activity呼叫 基類 author ad...

常用工具類

reflectionutils objectutils public static void main string args 判斷兩個陣列是否相等 system.out.println arrays.equals arr,arr true 列印陣列 string s1 arrays.tostrin...

常用工具類 作業

1.生成10個 10,23 之間的隨機整數 random 類的nextdouble 或nextint 實現public class randomdemo for int i 1 i 10 i 1.以樹狀結構輸出計算機某個指定資料夾下的所有的檔案和子資料夾名稱。public class filedem...