2013-12-12 53 views
0

我嘗試將字符串日期轉換爲DateTime。我知道我的字符串是ISO8601格式,帶有偏移時區。DateTime.ParseExact - 帶時區偏移量的iso8601

我試試這個:

DateTime date = DateTime.ParseExact(strDate,"yyyy-MM-dd'T'HH:mm:sszzz", CultureInfo.InvariantCulture); 

但它不能在每個情況下工作。

它的工作原理爲負偏移:2013-12-11T14:36:00-01:00

它一點兒也不工作(捕獲異常)的正偏移:2013-12-11T14:36:00 + 01:00

我是否以正確的方式使用DateTime.ParseExact?

謝謝您的幫助。

+0

確定嗎?兩者都適用於我。 http://ideone.com/PUXorY –

回答

1

您提供的字符串適用於我,沒有任何格式規範。

 DateTime d = DateTime.Parse("2013-12-11T14:36:00+01:00"); 
     Debug.Print(d.ToString()); 
     Debug.Print(d.ToUniversalTime().ToString()); 

你看,後者的打印,其打印減去1個小時,爲您指定+ 1小時的時區。

0

哎呀,我沒有做我的字符「+」的URL編碼的......:S

它是由一個REST Web服務使用,所以當我發送2013-12 -11T14:36:00%2B01:00,它的作品..!