2015-02-10 44 views
0

完全搞砸了與Lotus Notes DXL時間戳格式... 由於是導出DXL從Lotus Notes文檔時間戳,它看起來像:轉換DXL時間戳C#的DateTime

20141104T132939,49+01 

嘗試拿到格式DateTime.ParseExact工作,如:

DateTime.ParseExact(dateStr.Substring(0, 13), "yyyyMMddThhmm", System.Globalization.CultureInfo.InvariantCulture).ToString("dd.MM.yyyy hh:mm"); 

,但沒有運氣>>>System.FormatException "no valid DateTime format"

C#可以處理上面的時間戳嗎?

+0

第一部分看起來很簡單 - 你應該引用'T','hh'應該是'HH',理想情況下你應該包括秒鐘......但是你知道什麼是',49 + 01 '是爲了表明? – 2015-02-10 11:58:05

+0

對,不知道如何處理逗號後面的部分......在當前的應用案例中秒數並不是真的需要,但是也很好。 :)我真的需要首先SubString嗎?調試顯示我,SubString剪切似乎沒有完成,但它正在工作... – SiL3NC3 2015-02-10 12:03:18

+0

通過將「hh」更改爲「HH」,引用有所幫助,異常消失。所以如果你把這個作爲答案,我會設置這個問題的答案。非常感謝你幫助我! – SiL3NC3 2015-02-10 12:08:41

回答

1

的問題是你的文本格式 - 你已經使用hh這是12小時時鐘,但你的13的值你想HH,這是24小時制。我也建議引述T,你只是想字面T字符,並考慮以下兩個字符第二:

DateTime dateTime = DateTime.ParseExact(
    dateStr.Substring(0, 15), 
    "yyyyMMdd'T'HHmmss", 
    CultureInfo.InvariantCulture); 

然後,我會建議保持它作爲一個DateTime只要你能,只能轉換回實際需要將其顯示給客戶端的字符串。

+0

作品!謝謝。 – SiL3NC3 2015-02-10 13:03:26