我有 ServiceStack 返回的日期字符串:2013-08-25T12:06:32.8770000 但是转换为 Dart 的日期时出错
DateTime.parse(mapAccount[Account.RECCREATED]);
打电话时没问题
DateTime.parse((mapAccount[Account.RECCREATED] as String).substring(0, 26));
有没有办法修复它。谢谢。
我有 ServiceStack 返回的日期字符串:2013-08-25T12:06:32.8770000 但是转换为 Dart 的日期时出错
DateTime.parse(mapAccount[Account.RECCREATED]);
打电话时没问题
DateTime.parse((mapAccount[Account.RECCREATED] as String).substring(0, 26));
有没有办法修复它。谢谢。
看起来字符串与内部使用的正则表达式不匹配:
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的一个子集。
看起来您的解决方案是目前唯一的解决方案。不确定这是否应该被视为错误,但如果您认为这是错误,请在此处创建错误报告。
有关更多详细信息,请参阅有关文档DateTime.parse
。看起来该parse
功能的问题已经在错误跟踪器中。