【问题标题】:DateTime from date and time pickerDateTime 来自日期和时间选择器
【发布时间】:2021-03-02 20:34:20
【问题描述】:

我有一个日期和时间选择器:

Future<void> _showDatePicker(BuildContext context) async {
      final picked = await showDatePicker(
        context: context,
        initialDate: _fromDate,
        firstDate: DateTime(1000, 1),
        lastDate: DateTime(2200),
      );
      print(picked);
      if (picked != null && picked != _fromDate) {
        setState(() {
          _fromDate = picked;
        });
      }
    }

    Future<void> _showTimePicker(BuildContext context) async {
      final picked = await showTimePicker(
        context: context,
        initialTime: _fromTime,
      );
      print(picked);
      if (picked != null && picked != _fromTime) {
        setState(() {
          _fromTime = picked;
        });
      }
    }

当我选择一个日期时,结果是2021-03-10 00:00:00.000,当我选择一个时间时,结果是TimeOfDay(22:12)

如何将它们结合起来拥有2021-03-10 22:12:00.000。这就是我要保存到我的数据库中的内容。

我如何从日期 2021-03-10 00:00:00.000 中删除三个尾随零,使其看起来像这样 --> 2021-03-10 00:00:00Text() 小部件中显示时?

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    选择日期和时间后,必须以这种方式生成一个新的日期时间对象。

    DateTime _fromDate = new DateTime.now();
    TimeOfDay _fromTime = new TimeOfDay.now();
    
    DateTime newDateTime = new DateTime(_fromDate.year, _fromDate.month,
        _fromDate.day, _fromTime.hour, _fromTime.minute);
    

    然后使用intl package 将日期格式化为您想要的字符串。

    String dateTimeFormated = DateFormat('yyyy-MM-dd H:mm:ss').format(newDateTime);
    print(dateTimeFormated);
    

    结果将是一个类似的字符串

    2021-03-10 22:12:00
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多