? 前言:
? ? ? ? 在Android? 和iOS? 常用的App里面經(jīng)常有獲取當(dāng)前時(shí)間和日期 原生的android? 和iOS 有系統(tǒng)的api提供很詳細(xì) 這邊我就不展開(kāi)講了 今天主要說(shuō)說(shuō)flutter 中如何獲取時(shí)間和日期 以及時(shí)間戳的格式轉(zhuǎn)換
效果圖:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 日期選擇?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?時(shí)間選擇?

1需要用到的三方庫(kù)? 以及選擇器中文漢的配置 :
flutter_localizations:
sdk: flutter
date_format: ^1.0.8
把這些復(fù)制到 pubspec.yaml 里面?

然后在控制臺(tái)敲flutter? pub get? 命令下載依賴
2 具體的效果實(shí)現(xiàn)

我們寫(xiě)了兩個(gè)Row組件里面嵌套??Text? 和Icon 來(lái)進(jìn)行測(cè)試? 外層嵌套InkWell 來(lái)實(shí)現(xiàn)點(diǎn)擊效果??

我們?cè)趏nTap方法里面來(lái)對(duì)我們獲取時(shí)間和日期進(jìn)行操作??
下面我們?cè)僬f(shuō)明我們?cè)趺传@取但當(dāng)前時(shí)間和日期??
首先要import 進(jìn)來(lái)??import 'package:date_format/date_format.dart';? ?依賴?
然后通過(guò)
??DateTime_nowDate=DateTime.now();
var _nowTime=TimeOfDay(hour:12,minute:20);?
分別獲取當(dāng)前日期和時(shí)間
然后我們調(diào)起的日期選擇器和時(shí)間選擇器
日期選擇器 :
_showDatePciker()async{
var? reslut =await showDatePicker(
context:context,
? ? ? initialDate:_nowDate,
? ? ? firstDate:DateTime(1900),
? ? ? lastDate:DateTime(2050),
? ? ? );
? ? setState(() {
this._nowDate=reslut;
? ? });
}
時(shí)間選擇器 :
_showTimePciker()async {
var? result=await? showTimePicker(
context:context,
? ? ? ? initialTime:_nowTime);
? setState(() {
this._nowTime=result;
? });
}

分別在setState 方法里面 將result 賦值給當(dāng)前的時(shí)間和日期變量??
this._nowDate=reslut;??
this._nowTime=result;
3我們?cè)诰唧w顯示組件里面替換
InkWell(
child:Row(
mainAxisAlignment: MainAxisAlignment.center,
? ? ? children: [
Text("${formatDate(_nowDate, [yyyy, '年', mm, '月', dd])}"),
? ? ? ? Icon(Icons.arrow_drop_down)
],
? ? ),
? ? onTap: _showDatePciker
/* onTap: _showDatePciker()*/
),
我們要注意將獲取的時(shí)間格式進(jìn)行轉(zhuǎn)換?
日期 :Text("${formatDate(_nowDate, [yyyy, '年', mm, '月', dd])}"),?
時(shí)間:Text("${_nowTime.format(context)}"),
到此我們就能實(shí)現(xiàn)日期選擇和時(shí)間選擇 但是選擇器的界面默認(rèn)是英文的 為了符合國(guó)人習(xí)慣我們要做漢化處理?
我們需要在程序入口的MaterialApp 里面進(jìn)行配置?
