Flutter中的日期、格式化日期、日期选择器组件

Flutter中的日期和时间戳

//獲取當前日期 DateTime _nowDate = DateTime.now(); print(_nowDate);//2019-10-29 10:57:20.384872 print(_nowDate.millisecondsSinceEpoch);//時間戳,1572317840384 print(DateTime.fromMicrosecondsSinceEpoch(1572317840384));//時間戳轉換日期,1970-01-19 12:45:17.840384

所谓时间戳,是指自格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数

有些情况下,后台可能会将所有的时间都转换成时间戳返回给我们前端,这是我们就需要将时间戳转换成时间,并将时间进行格式化。

展示一个时间,我们会有多种形式,比如1970-01-01、1970/01/01、1970年01月01日,等等,那么我们如何把同一个时间根据需要转换成不同的格式呢?接下来我就为大家介绍一个Flutter中的第三方库。

Flutter第三方組件庫

登陸pub.dev搜索date_format組件查看Installing添加依賴

pubspec.yaml

dependencies: date_format: ^1.0.8

按ctrl+s或flutter packages get後會自動下載依賴包,注意控制台,如無異常就是下載成功

引入包

import 'package:date_format/date_format.dart'; print(formatDate(DateTime.now(), [yyyy, "-", mm, "-", dd, " ", DD, " ", HH, ":", nn, ":", ss]));

輸出

2019-10-29 Wednesday 14:27:29

调用Flutter自带的日期选择器组件和时间选择器组件

顯示日曆組件和獲取選中數據的方法一

//_代表私有,重寫私有的日曆組建 _showDatePicker(){ showDatePicker( context:context,//上下文必須傳入 initialDate:_nowDate,//設置初始化日期 firstDate:DateTime(1900),//設置起始時間 lastDate: DateTime(2100),//設置結束時間 ).then((val){//異步方法 print(val); }); }

方法二

_showDatePicker() async{ var val = await showDatePicker( context:context,//上下文必須傳入 initialDate:_nowDate,//設置初始化日期 firstDate:DateTime(1900),//設置起始時間 lastDate: DateTime(2100),//設置結束時間 ); setState(() { //將獲得時間傳給變量 this._nowDate =val; }); }

使用變量替換文本

Container(  margin: EdgeInsets.all(5),  width: 350,  height: 120,  decoration: new BoxDecoration(    color: Colors.black12,    borderRadius:BorderRadius.circular(10.0),//邊框  ),  child: GestureDetector(//手勢事件    child: Text('${formatDate(_nowDate, [yyyy, "-", mm, "-", dd])}'),//替換文本    onTap: (){      _showDatePicker();//調用重寫的組件    },  ),),

時間

  //自帶組件 showTimePicker( context: context, initialTime: new TimeOfDay.now(), ).then((val) { print(val); }).catchError((err) { print(err); }); //獲得當前時間 var _nowTime = TimeOfDay.now(); _showTimePicker() async{ var val = await showTimePicker( context: context,//上下文 initialTime: _nowTime//當前時間,設置固定時間TimeOfDay(hour: 12,minute: 10) ); setState(() { this._nowTime = val; }); }

參考:https://cloud.tencent.com/developer/article/1495839

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用

皕杰报表(关于日期时间时分秒显示不出来)

在使用皕杰报表设计器时,数据据里面是日期型,但当你web预览时候,发现有日期时间类型的数据时分秒显示不出来,只有年月日能显示出来,时分秒显示为0:00:00。1.可以使用tochar解决,数据集用selecttochar(flowdate,"yyyyMMddHH:mm:ss")fromtablename2.也可以把数据库日期类型date改成timestamp

Java日期时间API系列31

  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前

mysql简单常用语句汇总

1\.常用函数uuid和时间戳SELECTUUID(),UNIX_TIMESTAMP();将时间戳转为日期格式FROM_UNIXTIME(mw.created_at,'%Y%m%d%H:%i:%s')设置参数select@m_no:max(m_no)fromvc_m;set@m