2011-03-31 190 views
2

試圖解析這是日期時間:解析日期時間

2011.03.13-21:15:04+511.0597 

使用

Console.WriteLine(DateTime.ParseExact("2011.03.13-21:15:04+511.0597", 
             "yyyy.MM.dd-hh:mm:ss+ttt.tttt", 
        CultureInfo.CreateSpecificCulture("en-US")).ToString()); 

但它說無法識別字符串。

任何想法即時做錯了什麼?

+2

您是否嘗試過不太正式的DateTime.Parse? – Tejs 2011-03-31 13:33:25

+0

美國的日期是以mm/dd/yyyy格式編寫的,在您的日期示例中不是這種情況。 – shahkalpesh 2011-03-31 13:35:59

+1

@shahkalpesh:無所謂,因爲他無論如何都定義了自己的格式。 – 2011-03-31 13:37:08

回答

3

不確定,但是如果我在秒數之後將所有內容剪切得很好,自定義格式的"tt"部分是AM/PM標誌,這是一個可能的目標......我想你的意思fff這是秒的小數部分...

另外一個是,你有較低情況"hh"這是12小時制時鐘只有 - 你的字符串有21的小時部分,這需要大寫HH在您的格式...

你也不能分割兩組數字的任何字符,因爲你有ttt.tttt。我可以得到您的樣品最接近的工作代碼是這樣的:

DateTime.ParseExact("2011.03.13-21:15:04+511", "yyyy.MM.dd-HH:mm:ss+fff", CultureInfo.CreateSpecificCulture("en-US")) 
+0

問題是即時通訊從我沒有任何控制權的日誌文件中獲取這個字符串,所以我堅持使用該示例.. – Stacker 2011-03-31 13:54:46

+1

你能在這段時間後修剪嗎?或者剝離解析前的時間段? – 2011-03-31 14:03:58

+0

不幸的是,我不能,因爲它有點重要的原因,有時我必須評估日誌的順序,它有所作爲。 – Stacker 2011-03-31 14:06:33