Dart DateTime.parse()字符串日期由ServiceStack返回

时间:2013-08-25 09:50:19

标签: servicestack dart

我有ServiceStack返回日期字符串:2013-08-25T12:06:32.8770000但转换为Dart日期时出错

DateTime.parse(mapAccount[Account.RECCREATED]);

通话时确定

DateTime.parse((mapAccount[Account.RECCREATED] as String).substring(0, 26));

无论如何都要解决它。谢谢你。

1 个答案:

答案 0 :(得分:2)

看起来字符串与内部使用的正则表达式不匹配:

 r'^([+-]?\d?\d\d\d\d)-?(\d\d)-?(\d\d)(?:[ T](\d\d)(?::?(\d\d)(?::?(\d\d)(.\d{1,6})?)?)? ?([zZ])?)?$'

但是正则表达式不支持超过6位数的毫秒(和微秒)部分,但是你提供7位数。 文档没有说明支持哪种格式,但给出了一些示例。他们只声明他们支持ISO 8601的子集

看起来您的解决方案是目前唯一的解决方案。 不确定这是否应该作为错误处理,但如果您认为这是一个错误,请创建一个错误报告here

有关详细信息,请参阅有关DateTime.parse的文档。看起来parse功能的问题已经存在于错误跟踪器中。