当前位置: 首页 > 知识库问答 >
问题:

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

柴瀚昂
2023-03-14

在我的应用程序中,有些情况下JSON中的< code>date字段无效。我想显示另一个名为< code>timestamp的字段,而不是显示“无效日期”。但是,该字段的格式为:< code>20200518100014。我想把它转换成< code > 2020年5月18日。

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

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

这会导致以下错误:

如何修复此问题以将日期显示为< code > 2020年5月18日格式?

答复:

根据下面的@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;
}

共有1个答案

晁开宇
2023-03-14

我跳过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);
 类似资料:
  • 我希望能够将日期字符串(如“2019年9月23日”)转换为dart中的毫秒

  • 我有一个字符串: 我需要将其转换为日期时间或字符串列表.... 我尝试 JsonDecode 它会引发格式异常: 未处理的异常:格式异常:意外的字符(在字符 6 处) [2022-04-14 15:51:10,2022-01-29 15:51:10] 如何从字符串中获取列表?

  • 我正在从DB获取日期值作为长值。我正在将其转换为字符串以使用解析函数。下面是我的代码 但在执行此代码时,应用程序会崩溃。如果 但我将这个值作为“12302012235”(pzudo值)。 我怎么能这么做? 编辑: 我正在将日期值作为整数保存到数据库。我正在从DB中获取这个值,并将其转换为字符串。这是实际的strDate1值

  • 问题内容: 是否可以将“ 20110210”转换为2011-02-10? 我试过,我得到 我究竟做错了什么? 我有新的SimpleDateFormat(“ yyyy-MM-dd”)而不是新的SimpleDateFormat(“ yyyyMMdd”) 问题答案: 这对我有用,不会引发异常:

  • 我正在尝试转换一个表示存储在SQLite中的日期的字符串。 日期存储到sqlite中,如下所示: 根据Java文档,方法: 返回此日期的字符串表示形式。格式设置相当于使用具有格式字符串“eee MMM dd hh:mm:ss zzz yyyy”的SimpleDateFormat,看起来类似于“tue Jun 22 13:07:00 PDT 1999”。则使用当前默认时区和区域设置。如果需要控制时区

  • 问题内容: 我正在尝试将字符串解析为android应用程序中的日期字段,但似乎无法正确理解。这是我要转换为日期“ 2012/03/26/11:49:00 AM”的字符串。我正在使用的功能是: 但我不断得到结果。 问题答案: 您显示我猜测的数据的方式是错误的,因为对我来说: 印刷品: