我有一个DateTime的实例,我想将其格式化为字符串。我怎么做呢?我想把日期转换成一个字符串,类似于“2013-04-20”。


当前回答

目前天:

DateTime.now().day, //something like 26

目前月:

DateTime.now().month, //something like 4

本年度:

DateTime.now().year, //something like 2022

目前Houre:

DateTime.now().hour, //something like 12

当前时间:

DateTime.now().minute, //something like 13

目前第二:

DateTime.now().second, //something like 44

其他回答

目前天:

DateTime.now().day, //something like 26

目前月:

DateTime.now().month, //something like 4

本年度:

DateTime.now().year, //something like 2022

目前Houre:

DateTime.now().hour, //something like 12

当前时间:

DateTime.now().minute, //something like 13

目前第二:

DateTime.now().second, //something like 44

main() {
  final String pattern = 'yyyy-MM-dd';
  final String formatted = DateFormat(pattern).format(DateTime.now());
  print(formatted);
}

更改yyyy-MM-dd字符串可以更改日期格式。我用这个模式字符串做了一个应用程序。

你可以在我的应用程序中实验字符串格式。 https://biplobsd.github.io/EpochConverterApp

在这里你可以看到我如何编辑模式和这个效果显示在顶部

另一种方法,使用intl包。

创建DateTime的扩展:

date_time_extension.dart

import 'package:intl/date_symbol_data_local.dart';
import 'package:intl/intl.dart';

extension DateTimeExtension on DateTime {
  String format([String pattern = 'dd/MM/yyyy', String? locale]) {
    if (locale != null && locale.isNotEmpty) {
      initializeDateFormatting(locale);
    }
    return DateFormat(pattern, locale).format(this);
  }
}

导入你要使用DateTime类型的文件,你可以这样使用它:

DateTime.now().format();

DateTime.now().format('MM/yyyy');

DateTime.now().format('MM/yyyy', 'es');

一个更简单的方法:

new DateFormat("dd-MM-y").format(YOUR_DATETIME_HERE)

无依赖项方法[用于将日期显示为格式化字符串]

如果你想要以日/月/年的形式显示你的DateTime值或任何你喜欢的格式,字符串插值可以很方便:

"${_date.day} / ${_date.month} / ${_date.year}"

示例输出:

It's 23 out of 4 out of 1920

我不想使用任何额外的库,所以我走了这条路。