Flutter自带日期组件,异步方法的数据获取,日期组件显示中文

  @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

猜你喜欢

转载自blog.csdn.net/qq_42572245/article/details/106752485