2014-11-03 121 views
-1

我有以下的時間字符串2014-11-03 08:44:00:082467 Zc#將字符串轉換爲日期 - 這是什麼格式?

當我嘗試做ç簡單Convert.ToDateTime我有錯,這不是一個公認的DateTime字符串。

我也試過什麼在這裏的建議後:DateTime.Parse("2012-09-30T23:00:00.0000000Z") always converts to DateTimeKind.Local

var date = DateTime.ParseExact("2012-09-30T23:00:00.0000000Z", 
            "yyyy-MM-dd'T'HH:mm:ss.fffffff'Z'", 
            CultureInfo.InvariantCulture, 
            DateTimeStyles.AssumeUniversal | 
            DateTimeStyles.AdjustToUniversal); 

但得到了同樣的錯誤。這是什麼樣的DateTime字符串?以及如何將它轉換爲DateTime對象?另外,這不是正確的時間(我在2小時之前) - 所以我猜這是世界各地的某種時間。

謝謝

+1

你嘗試調整日期格式字符串來匹配數據? – 2014-11-03 08:57:49

+1

在亞秒值之前有一個':'而不是''。' – 2014-11-03 08:58:09

+0

@PatrickHofman我發佈的代碼來自另一篇文章,我發現它 - 它不適用於我的字符串。 – developer82 2014-11-03 09:02:42

回答

1

這是適用於您的string格式,雖然它是不是一個有效的字符串根據ISO 8601標準

var date = DateTime.ParseExact("2014-11-03 08:44:00:082467 Z", 
           "yyyy-MM-dd' 'HH:mm:ss:ffffff' Z'", 
           CultureInfo.InvariantCulture, 
           DateTimeStyles.AssumeUniversal | 
           DateTimeStyles.AdjustToUniversal); 

Dotnetfiddle

1

它看起來像ISO 8601格式。

DateTime.Now.ToString("o")

+0

那麼如何從字符串進行轉換? – developer82 2014-11-03 08:59:32

+0

'DateTime time = DateTime.ParseExact(date,「o」,CultureInfo.InvariantCulture,DateTimeStyles.AssumeUniversal);'將解析時間。任何需要應用的補償我都會留給你。 – 2014-11-03 09:06:47

0

兩個日期你在你的問題提供的是不一樣的!

假設你的問題也適用於第二,這貌似是標準答案是:

string s = "2012-09-30T23:00:00.0000000Z"; 
var date = DateTime.ParseExact(s, "o", CultureInfo.InvariantCulture, 
            DateTimeStyles.AssumeUniversal | 
            DateTimeStyles.AdjustToUniversal); 
Console.WriteLine(date); 

(全工樣品)