我有一个包含日期的字符串,格式为yyyyMMddHHmmss(例如)(20180626170555),我使用以下代码将其转换为日期时间

dateTimeFromString(json['dateTime'], "yyyyMMddHHmmss")

例外情况是:

FormatException: Trying to read MM from 20180623130424 at position 14

原因可能是什么呢?

推荐答案

intl DateFormat无法处理输入字符串,因为它没有任何分隔符.整根绳子每年都会被消耗掉.然而DateTime.parse确实解决了这个问题(几乎).它恰好期望的正是您拥有的格式(同样,几乎是).

对于parse,可以接受的样式之一是20120227T132700,只是日期/时间分隔符T不同.

试试这个:

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

Flutter相关问答推荐

如何将图像从顶部和底部半向外设置为飘动

在Flutter中,有没有一种方法可以点击页面到后面的页面?

如何在凌晨12点显示00:00(24小时格式)而不是在Flutter 中显示24:00

Flutter -如何停止块监听程序在后台堆栈中运行

从.gitignore中排除.fvm/fvm_config.json

Flutter 数独网格

应为标识符,并应为查找)错误

FittedBox叠加技术在Flutter 中的应用

Wired Firebase错误-[CLOUD_FIRESTORE/UNAvailable]该服务当前不可用

Flutter守护进程无法启动

Flutter 附近的连接

带有命名参数的回调函数不起作用

如何使用Riverpod提供程序正确构建搜索栏?

Firebase Auth - 有没有办法为新用户预先生成 UID?

在 flutter 中获取最喜欢的文档

Flutterfire Configure - 未处理的异常和没有 firebase 初始化

在 CircleAvatar 中放置芯片

无法将参数类型Future Function(String?)分配给参数类型void Function(NotificationResponse)?

Flutter 将方法应用于静态变量

如何在Flutter 中一次判断共享首选项中是否存在多个值