2010-12-21 126 views
9

我想從字符串轉換爲DataTime,但發生錯誤。 我使用VS 2003,.NET Framework 1.1的不能隱式地將類型'字符串'轉換爲'System.DateTime'

DateTime dt = Convert.ToDateTime("11/23/2010"); 
string s2 = dt.ToString("dd-MM-yyyy"); 
DateTime dtnew = Convert.ToString(s2); 

不能鍵入 '串' 隱式轉換爲 'System.DateTime的'

任何一個可以幫助我我的語法如何解決錯誤。

+1

嚴格推薦你t o至少切換到「.NET 2.0」。你將需要VS 2005+。但是你可以使用免費的VS 2010,無論如何比VS 2003更好! – abatishchev 2010-12-21 10:32:46

回答

12
string input = "21-12-2010"; // dd-MM-yyyy  
DateTime d; 
if (DateTime.TryParseExact(input, "dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out d)) 
{ 
    // use d 
} 
+0

+1'DateTime.TryParse' – 2010-12-21 10:26:28

5

我想你已經犯了一個錯字Convert.ToString(s2)Convert.ToDateTime(s2)

+0

我收到一個異常mscorlib.dll中發生未處理的類型'System.FormatException'異常其他信息:字符串未被識別爲有效的DateTime。 – happysmile 2010-12-21 10:22:23

+0

當從Change.ToString(s2)更改更改爲Convert.ToDateTime(s2) – happysmile 2010-12-21 10:23:14

+0

您最好嘗試使用DateTime.Parse()。這將免除一些錯誤。看起來像Convert()在2010年11月23日哭泣,它認爲23是一個月。 – Pradeep 2010-12-21 10:26:08

2

如果您需要指定格式,請嘗試DateTime.Parse(...)DateTime.ParseExact(...)

4

您應該使用DateTime.ParseDateTime.ParseExact

DateTime dt= DateTime.Parse("11/23/2010"); 
string s2=dt.ToString("dd-MM-yyyy"); 
DateTime dtnew = DateTime.Parse(s2); 

兩者都有TryXXX的變種,需要傳遞一個out參數,但不會引發異常,如果解析失敗:

DateTime dt; 
if(td = DateTime.TryParse("11/23/2010", out td)) 
{ 
    string s2=dt.ToString("dd-MM-yyyy"); 
    DateTime dtnew = DateTime.Parse(s2); 
} 
+1

+1同意 – 2010-12-21 10:24:41

+0

1.'dt = new DataTime'; 2.'dt = DateTime.Parse';總數:多餘的實例化 – abatishchev 2010-12-21 10:25:45

+0

@abatishchev - 很對。 – Oded 2010-12-21 10:27:23

1

DateTime.Parse("01/01 2010"); 或使用 DateTime.TryParse 如果你不知道它每次都會轉換,即。並不總是一個日期,但有時候是空白的。

+0

+1同意 – 2010-12-21 10:25:12

3
DateTime dtnew = Convert.ToString(s2); 

問題是,你的再次轉換string s2爲字符串,並將其存儲在DateTime variable

試試這個:

DateTime dt = Convert.ToDateTime("11/23/2010"); 
string s2 = dt.ToString("dd-MM-yyyy"); 
DateTime dtnew = Convert.ToDateTime(s2); 
-1

您需要更改雙引號("")爲單引號(''

相關問題