2010-12-21 205 views
9

文字列からDataTimeに変換しようとしていますが、エラーが発生します。私はVS 2003を使用しています 、.NET Framework 1.1の'string'を暗黙的に 'System.DateTime'に変換できません

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

は、暗黙的に 'のSystem.DateTime'

に型 'string' を変換できませんいずれかはどのように構文で私に私を助けることができますエラーを解決してください。

+1

厳密にお勧めしますo少なくとも.NET 2.0に切り替える。あなたはVS 2005+が必要です。しかし、あなたはVS 2003よりも優れている無料のVS 2010を使用することができます! – abatishchev

答えて

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' –

5

あなたが誤植をしたと思います。Convert.ToString(s2)Convert.ToDateTime(s2)

+0

例外が発生しましたmscorlib.dllで 'System.FormatException'の未処理の例外が発生しました追加情報:文字列が有効なDateTimeとして認識されませんでした。 – happysmile

+0

Convert.ToString(s2)からConvert.ToDateTime(s2)への変更が変更された場合 – happysmile

+0

DateTime.Parse()を使用するとよいでしょう。それはエラーのいくつかを正当化するでしょう。 Convert()が2010年11月23日に泣いているように見えますが、23が1ヶ月だと思っています。 – Pradeep

2

フォーマットを指定する必要がある場合は、DateTime.Parse(...)またはDateTime.ParseExact(...)を試してください。

4

DateTime.ParseまたはDateTime.ParseExactを使用してください。

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

両方outパラメータを渡す必要がTryXXXバリアントを持っていますが、解析が失敗した場合に例外をスローしません。

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が同意しました –

+0

1. 'dt = new DataTime'; 2. 'dt = DateTime.Parse';合計:余計なインスタンス化 – abatishchev

+0

@abatishchev - かなり正しい。 – Oded

1

DateTime.Parse("01/01 2010"); かわからない場合 DateTime.TryParse を使用しますそれは毎回変換します。必ずしも日付ではなく、時には空白であることがあります。

+0

+1が同意しました –

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); 
関連する問題