如何在 Flutter 中格式化日期时间?删除日期时间中的毫秒?

Son*_*vli 11 datetime dart flutter

如您所见,我有一个自定义的 DatePicker 小部件,它采用DateTime类型的当前时间

 DatePickerWidget(
                    currentTime: DateTime.now(),
                    text: "$date1",
                    onChanged: (date) {
                      setState(() {
                        getProductDate(date.toString());
                        this.date1 = date.toString();
                      });
                    },
                    onConfirm: (date) {
                      setState(() {
                        getProductDate(date.toString());

                        this.date1 = date.toString();
                      });
                    },
                  ),
Run Code Online (Sandbox Code Playgroud)

但它也给了我毫秒。

结果

结果

YYYY-MM-JJ HH-MM:00.000

如何删除 DateTime 类型中的 :00.000 部分?

我只想采用这种格式:'yyyy-MM-dd'

currentTime仅获取DateTime类型。

有什么想法吗?

我的 DatePickerWidget 代码:

class DatePickerWidget extends StatelessWidget {
  final Function(DateTime data) onChanged;
  final Function(DateTime data) onConfirm;
  final String text;
  final DateTime currentTime;

 
 

  const DatePickerWidget(
      {Key key, this.onChanged, this.onConfirm, this.text, this.currentTime})
      : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ButtonWidget(
      onPressed: () {
        DatePicker.showDatePicker(context,
            theme: DatePickerTheme(
              containerHeight: context.dynamicHeight(0.3),
            ),
            showTitleActions: true,
            minTime: DateTime(2021, 1, 1),
            maxTime: DateTime(2028, 12, 29),
            onChanged: onChanged,
            onConfirm: onConfirm,
            currentTime: currentTime,
            locale: LocaleType.tr);
      },
      text: text,
      buttonColor: Colors.white,
      borderColor: Colors.black,
      textColor: Colors.black,
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

Cha*_*leb 10

您可以DateFormatintl包中使用。

\n
import \'package:intl/intl.dart\';\n\nDateTime now = DateTime.now();\nString formattedDate = DateFormat(\'yyyy-MM-dd \xe2\x80\x93 kk:mm\').format(now);\n
Run Code Online (Sandbox Code Playgroud)\n

您也可以在不添加依赖项的情况下完成

\n
DateTime.now()\n            .toString()\n            .substring(0,10)\n     );   \n
Run Code Online (Sandbox Code Playgroud)\n

0

\n


Jam*_*med 2

尝试Jiffy,以更轻松地处理日期和时间

要格式化您的日期时间,只需传入您的结果date,请参见下文

this.date1 = Jiffy.parseFromDateTime(date).format('yyyy-MM-dd'); // 2021-03-24

// or you can also use default formats

this.date1 = Jiffy.parseFromDateTime(date).yMMMMd; // March 24, 2021
Run Code Online (Sandbox Code Playgroud)