? ? ? ? 在客戶端開發(fā)中,時間(包含日期和時間)是一個很常用的功能,比如顯示時間、時間和時間戳轉(zhuǎn)換、時間之間的比較等,我使用的是date_format: ^1.0.8插件。在這里記錄一下使用方法。
? ? ? ? 1、時間戳轉(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位的時間戳轉(zhuǎn)換成DateTime,然后根據(jù)formatDate方法根據(jù)需要的格式來進行拼接。
點進這個formatDate方法看一下,就能完全明白這個String類型的時間是怎么拼接出來的





在傳入的formats集合來區(qū)分是獲取年、月、日、時、分、秒、周幾等什么樣的內(nèi)容,對DateTime來做不同的處理,再通過StringBuffer來把這些字段拼接起來,就得到了我們需要的字段類型。
????????2、獲取各個時間層次的值
? 可以分別通過DateTime.now().year,DateTime.now().month,DateTime.now().day來分別獲取現(xiàn)在的年份,月份和日期,同樣也可以獲取到時(hour)、分(minute)、秒(second)、毫秒(millisecond)、周幾(weekday),這個使用比較簡單。
? ? 3、兩個時間之間的判斷或者加減
一:計算兩個日期之間的間隔天數(shù),很簡單,就一句話
time2.difference(time1).inDays
同樣可以得到,以小時計算的間隔,以分鐘計算的間隔等等

二:獲取時間加、減之后的日期:
time.add(new Duration(days: -1));(減一天)或者time.subtract(Duration(days:1));
time.add(new Duration(days: 1));(加一天)
可以看出add的時候參數(shù)是一個Duration,看一下代碼

也就是對于一個日期來說,對Duration的這些入?yún)⒒蛘哒f成是構(gòu)造參數(shù)都可以執(zhí)行加減的操作。
對于flutter中的時間使用就到這里了,后續(xù)如果有更多的關(guān)于時間上的操作,再來更新文章。