星期几,文本中的月份和天数

时间:2019-02-07 02:49:41

标签: dart flutter

我需要在Flutter中以文本方式显示星期几,月份和天数,例如:“今天是2月4日,星期一”。我尝试使用dart包intl,但无法正常工作。

import 'package:intl/intl.dart';

2 个答案:

答案 0 :(得分:4)

要格式化日期,请使用正确的软件包。您只需要传递正确的日期格式即可获得所需的结果。

Check the flutter docs for DateFormat class

例如:

var _formattedDate = DateFormat('EEEE MMMM dd').format(DateTime.now());
print(_formattedDate);

上述代码的结果为: 2月7日星期四

如果您还想添加后缀,那么可以尝试一下。

if (_formattedDate.endsWith('1')) {
  _formattedDate += 'st';
} else if (_formattedDate.endsWith('2')) {
  _formattedDate += 'nd';
} else if (_formattedDate.endsWith('3')) {
  _formattedDate += 'rd';
} else {
  _formattedDate += 'th';
}

print(_formattedDate);

上述代码的结果为: 2月7日星期四

答案 1 :(得分:2)

@AmitJangid为您提供了答案, 但是没有内置功能可以添加后缀。

您可以使用以下代码添加它:

formatDate(){
  var date =DateTime.now();
  var suffix = "th";
  var digit = DateTime.now().day % 10;
  if ((digit > 0 && digit < 4) && (date.day < 11 || date.day > 13)) {
    suffix = ["st", "nd", "rd"][digit - 1];
  }
  return new DateFormat("EEEE MMMM d'$suffix'").format(DateTime.now());
}

在“文本小部件”中,

Text(
  "Today is " + formatDate(),
),

您将获得:

今天是2月7日,星期四