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

pexxcrt2  于 2023-03-13  发布在  Flutter
关注(0)|答案(4)|浏览(196)

如您所见,我有一个自定义DatePicker小部件,它采用DateTime类型中的currentTime

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();
                      });
                    },
                  ),

但它也给予了我毫秒。
result

结果

年-月-日-时-月:00.000
如何删除DateTime类型中的:00.000部分?
我只想这样的格式:* * 年-月-日**
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,
    );
  }
}
9q78igpj

9q78igpj1#

您可以使用intl包中的DateFormat

import 'package:intl/intl.dart';

DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyy-MM-dd – kk:mm').format(now);

您也可以在不添加依赖项的情况下执行此操作

DateTime.now()
            .toString()
            .substring(0,10)
     );

0

fxnxkyjh

fxnxkyjh2#

尝试使用Jiffy,以便更容易地处理日期和时间
要格式化DateTime,只需传入结果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
camsedfj

camsedfj3#

您将需要软件包intl

final now = DateTime.now();
String dateFormatted = DateFormat('yyyy-MM-dd').format(now);
fjaof16o

fjaof16o4#

在此处,请输入您的值,以代替“自新纪元以来的毫秒数”

var startDate = DateTime.fromMillisecondsSinceEpoch(int.parse("MillisecondsSinceEpoch"));

相关问题