我需要在Flutter中以文本方式显示星期几,月份和天数,例如:“今天是2月4日,星期一”。我尝试使用dart包intl,但无法正常工作。
import 'package:intl/intl.dart';
答案 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日,星期四