2016-03-28 72 views
0

我有以下ISO8601格式的日期時間字符串:ISO8601格式化字符串日期時間

2016-03-28T16:07:00 + 0200

我想將它轉換成C#DateTime對象,但我正在使用的解析方法會引發異常。

目前,我有這樣的:(不工作)

string format = "yyyy-MM-ddTHH:mm:ss+zzzz"; 
CultureInfo provider = CultureInfo.InvariantCulture; 

// Throws the exception: "String was not recognized as a valid DateTime." 
DateTime time = DateTime.ParseExact("2016-03-28T16:07:00+0200", format, provider); 

我如何解析函數與我的字符串工作嗎?

+2

你到底在問什麼?你想做什麼,你有麻煩? – senschen

+0

我想在我的c#程序中使用日期。我目前的做法是行不通的。 – Evert

+0

你想用它做什麼?如果我們不能理解這個問題,我們就無能爲力。 :/ – senschen

回答

0

我建議使用DateTimeOffset而不是DateTime。

var dateString = "2016-03-28T16:07:00+0200"; 
var date = DateTimeOffset.Parse (dateString); 

Console.WriteLine (date.ToString()); 

如果你要轉換爲DateTime對象

date.UtcDateTime; 

它會發出:

3/28/2016 4:07:00 PM +02:00 
+0

感謝您的迴應,但我想將其轉換爲DateTime對象,所以我可以在我的程序中進一步使用該對象進行比較。 – Evert

+0

你可以很容易地轉換爲任何你想要的對象。 PointTimeTimeOffset最適合不同的時區。 – Saleem

+0

@Evert查看DateTimeOffset的'.UtcDateTime'屬性 – Saleem