2013-02-07 32 views
1

我有一個具體的日期string"13/02/07,16:05:13+00"Convert.ToDateTime在C#中從特定日期字符串

我試圖將其轉換在C#datetimeConvert.toDateTime),但我不斷收到錯誤。

我也曾嘗試使用下面的代碼無濟於事解析它:

DateTime dt = DateTime.ParseExact(date, "yy/MM/dd,hh:mm:ss+00",System.Globalization.CultureInfo.CurrentCulture); 

如何轉換stringdatetime一個真正具體datetimestring

回答

4

請勿使用CurrentCulture - 使用不變文化。否則,你會選擇當前文化的日期和時間分隔符。

此外,您需要使用HH而不是hh,因爲您使用的是24小時制,而不是12小時制。這工作正常:

using System; 
using System.Collections.Generic; 
using System.Globalization; 

class Test 
{ 
    static void Main() 
    { 
     string date = "13/02/07,16:05:13+00"; 
     DateTime dt = DateTime.ParseExact(date, "yy/MM/dd,HH:mm:ss+00", 
              CultureInfo.InvariantCulture); 
     Console.WriteLine(dt); 
    } 
} 

「+00」肯定總是會一樣嗎?如果你需要處理非零偏移,它會改變一些東西。

+0

我在想+00可能會改變。是否有任何地方只是不考慮它? – MrPink

+0

@MrPink:你可以先修剪它。或者,您可以通過使用['zz'格式說明符](http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx#zzSpecifier)解析爲'DateTimeOffset'來考慮它。 –

0

使用HH作爲使用軍事時間時的小時部件。

DateTime dt = DateTime.ParseExact("13/02/07,16:05:13+00", "yy/MM/dd,HH:mm:ss+00",System.Globalization.CultureInfo.CurrentCulture);