繁体   English   中英

Dart / Flutter:我正在尝试将字符串转换为日期,但出现异常

[英]Dart / Flutter: I am trying to convert a String to a Date but getting an Exception

在我的应用程序中,有些情况下 JSON 中的date字段无效。 我不想显示“无效日期”,而是想显示另一个名为timestamp的字段。 但是,此字段采用以下格式: 20200518100014 我想将其转换为May 18, 2020

我没有成功,这是我拥有的最新代码

String processDate(data) {
    var timeStamp = DateFormat("MMM dd, yyyy").parse(data.timestamp.toString());
    return data.date == 'Invalid date' ? timeStamp : data.date;
}

这会导致以下错误:

在此处输入图像描述

如何解决此问题以将日期显示为May 18, 2020格式。


答案

基于下面的@Lunedor 答案,我能够创建以下解决方案:

String processDate(data) {
    String date = data.timestamp.toString();
    String dateWithT = date.substring(0, 8) + 'T' + date.substring(8);
    String dateTime = DateFormat("MMM dd, yyyy").format(DateTime.parse(dateWithT));

    return data.date == 'Invalid date' ? dateTime : data.date;
}

我正在跳过 MMM 错误,请检查此答案以查看可以将哪种类型的字符串解析为时间和日期:

https://stackoverflow.com/a/60988096/12880676

而你的情况,你可以使用这个答案中的方法。 我只是复制并粘贴代码:

String date = '20180626170555';
String dateWithT = date.substring(0, 8) + 'T' + date.substring(8);
DateTime dateTime = DateTime.parse(dateWithT);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM