如何格式化此日期2019-04-05T14:00:51.000Z

时间:2020-04-06 21:46:32

标签: flutter

var df = new DateFormat("EEE, d MMM yyyy HH:mm:ss z");

var date = df.parse(course.date); 字符串rt = df.format(date);

1 个答案:

答案 0 :(得分:0)

您尝试格式化2019-04-05T14:00:51.000Z的日期为UTC格式(因为它以Z结尾),并且在T的中间还有date,除了分隔符以区分datetime

DateFormat类非常静态,并且在涉及上述日期时有局限性。因此,我们首先必须操纵给定的日期,以仅考虑输入的datetime部分,如下所示:

var str = "2019-04-05T14:00:51.000Z";
var newStr = str.substring(0,10) + ' ' + str.substring(11,23);
print(newStr);  // 2019-04-05 14:00:51.000

请注意,在解析字符串之前,字符串必须采用可接受的格式。因此,我们还需要省略与Z相同的2019-04-05T14:00:51.000。关于这一点here的更多参考。

然后,我们需要将字符串转换为DateTime对象,然后将该对象传递给DateFormat's格式方法,如下所示:

DateTime dt = DateTime.parse(newStr);
print(DateFormat("EEE, d MMM yyyy HH:mm:ss").format(dt));  

这为我们提供了Fri, 5 Apr 2019 14:00:51的格式。

希望这能回答您的问题。

相关问题