Flutter / Dart-以输入格式格式化日期

问题描述

如何格式化日期并更改为:

current output

仅是dd / mm / yyyy?

输入字段代码:

    textFields.add(
    GestureDetector(
      onTap: () => _selectDate(context),child: AbsorbPointer(
        child: TextFormField(
          style: TextStyle(
             fontSize: 12.0
          ),controller: _date,keyboardType: TextInputType.datetime,decoration: InputDecoration(
            isDense: true,fillColor: Colors.white,hintText: 'Date of Birth',filled: true,enabledBorder: OutlineInputBorder(
              borderSide: BorderSide(width: 0.0),),contentPadding: const EdgeInsets.only(left: 14.0,bottom: 10.0,top: 10.0),onSaved: (value) => _dateOfBirth  = value,));

_selectDate方法:

  DateTime selectedDate = DateTime.now();
  TextEditingController _date = new TextEditingController();

  Future<Null> _selectDate(BuildContext context) async {
    final DateTime picked = await showDatePicker(
        context: context,initialDate: selectedDate,firstDate: DateTime(1901,1),lastDate: DateTime(2100));
    if (picked != null && picked != selectedDate)
      setState(() {
        selectedDate = picked;
        _date.value = TextEditingValue(text: picked.toString());
      });
  }

解决方法

您可以使用intl packageDateFormat类。您必须在您的intl: ^0.16.1中将pubspec.yaml添加为依赖项。可以找到最新版本here

您可以指定希望日期输出的确切格式。

例如。

import 'package:intl/intl.dart';//Import intl in the file this is being done

Future<Null> _selectDate(BuildContext context) async {
    DateFormat formatter = DateFormat('dd/MM/yyyy');//specifies day/month/year format

    final DateTime picked = await showDatePicker(
        context: context,initialDate: selectedDate,firstDate: DateTime(1901,1),lastDate: DateTime(2100));
    if (picked != null && picked != selectedDate)
      setState(() {
        selectedDate = picked;
        _date.value = TextEditingValue(text: formatter.format(picked));//Use formatter to format selected date and assign to text field
      });
  }
,
    DateTime now = DateTime.now();   //current date
    DateFormat formatter = DateFormat('yyyy-MM-dd'); // use any format
    String formatted = formatter.format(now);
    print(formatted); // something like 2013-04-20

如果日期选择器大于

        DateFormat formatter = DateFormat('yyyy-MM-dd'); // use any formate
    String formatted = formatter.format(picked);

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...