@override
void initState() {
// TODO: implement initState
super.initState();
print(now);//2020-06-14 17:10:38.083687
print(now.millisecondsSinceEpoch);//日期转时间戳1592125838083
print(DateTime.fromMillisecondsSinceEpoch(1592125838083));//时间戳转日期
}
import 'package:flutter/material.dart';
import 'package:date_format/date_format.dart';
class DatePickerDemo extends StatefulWidget {
@override
_DatePickerDemoState createState() => _DatePickerDemoState();
}
class _DatePickerDemoState extends State<DatePickerDemo> {
DateTime _now = DateTime.now();
var _time=TimeOfDay(hour: 10,minute: 33);
/* _showDatePicker(){第一种方法解决异步获取数据
showDatePicker(context: context, initialDate: now, firstDate: DateTime(1980), lastDate: DateTime(2070),).then((result){//解决异步获取数据,Future修饰就是异步方法
print(result);
});
}*/
//日期
_showDatePicker() async {
//第二种async改为异步,再awit等待执行完
var result = await showDatePicker(
context: context,
initialDate: _now,
firstDate: DateTime(1980),
lastDate: DateTime(2070));
print(result);
setState(() {
if (result != null) {
//不判断的话,关闭的时候会给now赋值为空
_now = result;
}
});
}
//时间
_showTimePicker(){
showTimePicker(context: context, initialTime: _time).then((result){
setState(() {
_time=result;
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('DateTime'),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
InkWell( //无任何样式,只是用onTap监听事件
child: Row(
children: <Widget>[
Text("${formatDate(_now, [yyyy, '-', mm, '-', dd])}"),
//调用外部组件让日期格式化
Icon(Icons.arrow_drop_down),
],
),
onTap: _showDatePicker),
InkWell( //无任何样式,只是用onTap监听事件
child: Row(
children: <Widget>[
Text("${_time.format(context)}"),//format转换时间格式
//调用外部组件让日期格式化
Icon(Icons.arrow_drop_down),
],
),
onTap: _showTimePicker)
],
)
],
),
);
}
}
Flutter时间控件转换为中文:
https://blog.csdn.net/weixin_30512027/article/details/84547036
链接补全
Flutter locale: Locale(‘zh’)报错
https://blog.csdn.net/mr_hmgo/article/details/106610929?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-2