一尘不染

无法将格式yyyyMMddHHmmss的字符串日期转换为DateTime dart

flutter

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

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

例外是:

FormatException: Trying to read MM from 20180623130424 at position 14

可能是什么原因?


阅读 348

收藏
2020-08-13

共1个答案

一尘不染

intl DateFormat由于没有任何分隔符,因此无法处理您的输入字符串。整个字符串将作为年份消耗掉。但是DateTime.parse确实(几乎)对此进行了处理。碰巧恰好期望您拥有(再次接近)格式。

的一种可接受的样式parse20120227T132700,只是T日期/时间分隔符有所不同。

试试这个:

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