? ? ? ? 在客戶端開發(fā)中最楷,時(shí)間(包含日期和時(shí)間)是一個(gè)很常用的功能,比如顯示時(shí)間饿序、時(shí)間和時(shí)間戳轉(zhuǎn)換勉失、時(shí)間之間的比較等,我使用的是date_format: ^1.0.8插件原探。在這里記錄一下使用方法乱凿。
? ? ? ? 1、時(shí)間戳轉(zhuǎn)換為String類型的字段
static StringreadTimestamp(int timestamp) {
????if (timestamp ==null) {
????????return "";
????? }
????var date =new DateTime.fromMillisecondsSinceEpoch(
????????timestamp.toString().length ==10 ? timestamp *1000 : timestamp);
? ? var time = formatDate(date, [mm, '-', dd, ' ', " ", HH, ':', nn]);
? ? return time;
}
首先是把13位的時(shí)間戳轉(zhuǎn)換成DateTime咽弦,然后根據(jù)formatDate方法根據(jù)需要的格式來進(jìn)行拼接徒蟆。
點(diǎn)進(jìn)這個(gè)formatDate方法看一下,就能完全明白這個(gè)String類型的時(shí)間是怎么拼接出來的
在傳入的formats集合來區(qū)分是獲取年型型、月段审、日、時(shí)闹蒜、分寺枉、秒、周幾等什么樣的內(nèi)容绷落,對DateTime來做不同的處理姥闪,再通過StringBuffer來把這些字段拼接起來,就得到了我們需要的字段類型砌烁。
????????2筐喳、獲取各個(gè)時(shí)間層次的值
? 可以分別通過DateTime.now().year,DateTime.now().month函喉,DateTime.now().day來分別獲取現(xiàn)在的年份避归,月份和日期,同樣也可以獲取到時(shí)(hour)管呵、分(minute)梳毙、秒(second)、毫秒(millisecond)捐下、周幾(weekday)账锹,這個(gè)使用比較簡單堂氯。
? ? 3、兩個(gè)時(shí)間之間的判斷或者加減
一:計(jì)算兩個(gè)日期之間的間隔天數(shù)牌废,很簡單咽白,就一句話
time2.difference(time1).inDays
同樣可以得到,以小時(shí)計(jì)算的間隔鸟缕,以分鐘計(jì)算的間隔等等
二:獲取時(shí)間加晶框、減之后的日期:
time.add(new Duration(days: -1));(減一天)或者time.subtract(Duration(days:1));
time.add(new Duration(days: 1));(加一天)
可以看出add的時(shí)候參數(shù)是一個(gè)Duration,看一下代碼
也就是對于一個(gè)日期來說懂从,對Duration的這些入?yún)⒒蛘哒f成是構(gòu)造參數(shù)都可以執(zhí)行加減的操作授段。
對于flutter中的時(shí)間使用就到這里了,后續(xù)如果有更多的關(guān)于時(shí)間上的操作番甩,再來更新文章侵贵。