0
我正在使用Java客戶端,它返回給我一個日期,如2016-09-02T16:18:54.000 UTC
。注意結尾,這不完全是標準格式。解析(幾乎)RoundtripKind日期在C#
如果我修剪「UTC」我可以成功地解析日期:
DateTime.Parse("2016-09-02T16:18:54.000")
但結果的種類是不確定的,而不是UTC(顯然)的;我可以通過用「Z」替換「UTC」來避開這種情況,如下所示:
DateTime.Parse("2016-09-02T16:18:54.000Z", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind)
但是,理想情況下,我不想亂用輸入。
過幾刺在這個與TryParseExact和不同的格式,但與每一個失敗:
DateTime.TryParseExact("2016-09-02T16:18:54.000 UTC", new [] {
"o",
"yyyy-MM-dd hh:mm:ss:fff UTC",
"yyyy-MM-ddhh:mm:ss:fff UTC",
"yyyy-MM-ddThh:mm:ss:fff UTC"
}, CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out startDate)
我敢肯定的「UTC」關鍵字不是問題(因爲others已經成功地使用它),而是「T」,我似乎無法知道如何解析:甚至不是我想在我的第二代碼片段被隱式地使用了「O」的格式,似乎工作:
DateTime.TryParseExact("2016-09-02T16:18:54.000Z", "o", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out startDate)
@CodeCaster根據OP問題,他的輸入是'2016-09-02T16:18:54.000 UTC'? – Pikoh
UTC之前的空間不是問題,用HH代替hh修復它,謝謝磨坊! –
不客氣@AlexandruMarculescu – Pikoh