我有一个DateTime的实例,我想将其格式化为字符串。我怎么做呢?我想把日期转换成一个字符串,类似于“2013-04-20”。
当前回答
要获得一个用户友好的字符串,包括日期和时间,你可以使用这个:
import 'package:intl/intl.dart';
main() {
final DateTime someDateTime = DateTime(2017, 9, 7, 17, 30);
final DateFormat formatter = DateFormat.yMMMd().add_jms();
final String formatted = formatter.format(someDateTime);
print(formatted); // Sep 7, 2017 5:30:00 PM (in the US)
}
其他回答
String formatDate(String date) {
return date.substring(0, 10).split('-').reversed.join().replaceAll('-', '/');
}
From format "yyyy-mm-dd H:i:s"
/// Get date as a string for display.
String getFormattedDate(String date) {
/// Convert into local date format.
var localDate = DateTime.parse(date).toLocal();
/// inputFormat - format getting from api or other func.
/// e.g If 2021-05-27 9:34:12.781341 then format must be yyyy-MM-dd HH:mm
/// If 27/05/2021 9:34:12.781341 then format must be dd/MM/yyyy HH:mm
var inputFormat = DateFormat('yyyy-MM-dd HH:mm');
var inputDate = inputFormat.parse(localDate.toString());
/// outputFormat - convert into format you want to show.
var outputFormat = DateFormat('dd/MM/yyyy HH:mm');
var outputDate = outputFormat.format(inputDate);
return outputDate.toString();
}
用“H:mm”来查看完整的分钟,比如13:08,而不是13:8
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
在这里你可以看到我如何编辑模式和这个效果显示在顶部
处理年度季度,从字符串到日期时间,我没有找到合适的解决方案,所以做了这个:
List<String> dateAsList = 'Q1 2001'.split(' ');
DateTime dateTime = DateTime.now();
String quarter = dateAsList[0];
int year = int.parse(dateAsList[1]);
switch(quarter) {
case "Q1": dateTime = DateTime(year, 1);
break;
case "Q2": dateTime = DateTime(year, 4);
break;
case "Q3": dateTime = DateTime(year, 7);
break;
case "Q4": dateTime = DateTime(year, 10);
break;
}