2013-08-25 52 views
2

至今回報我有ServiceStack日期字符串返回:2013-08-25T12:06:32.8770000但錯誤時轉換爲達特飛鏢DateTime.parse()字符串由ServiceStack

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

就OK了通話時

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

反正是有解決它。謝謝。

+0

你會得到什麼錯誤? – Fox32

+0

這是錯誤:打破例外:非法參數:2013-08-25T12:06:32.8770000 例外:非法證據:2013-08-25T12:06:32.8770000 DateTime.parse(dart:核心/ date_time.dart:67:7) –

+0

同樣的問題,我用web api休息(c#) – toregua

回答

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函數的問題已經在bug跟蹤器中。