2011-11-21 20 views
40

可能性の重複:
Convert string to DateTime in c#YYYYMMDD列日付

質問

私は実際にdirectoryInfoから取得した文字列値を得ました。 私が達成したいのは、比較のために文字列値を日付値に変換することです。

フォルダ名は、このCのようなサンプルです:\ \ 20111120 を折るし、適切に別のフォルダパスがこの Cのようなものです:\ \ 20111021

20111120は、実際の日付形式ですFOLD。私はいくつかの比較をディレクトリ全体を削除するかどうかを決めるために日付形式に変換しようとしています。

は、私は私がここに私のコード

DirectoryInfo dir = new DirectoryInfo(_FolderPath); 

foreach (DirectoryInfo f in dir.GetDirectories()) 
{ 
    String folderName = f.ToString(); 
    DateTime ConDt = Convert.ToDateTime(folderName); 
    Console.WriteLine(ConDt); 
    Console.WriteLine(ConDt.GetType()); 
    //Console.WriteLine(folderName.GetType()); 
    //Console.WriteLine(f.GetType()); 
} 

私はConvert.toDatetime(としようとしたペーストばならないと思います)と作らconverstion.Howにできないが、私はこれを行うことができますことを、私はエラーを取得しますか?

+1

これはtechically重複かもしれないが、それは私が必要なものをより明確です。 +1 –

答えて

108

は、を使用する必要があります。DateTime.TryParseExactです。

var newDate = DateTime.ParseExact("20111120", 
            "yyyyMMdd", 
            CultureInfo.InvariantCulture); 

OR

string str = "20111021"; 
string[] format = {"yyyyMMdd"}; 
DateTime date; 

if (DateTime.TryParseExact(str, 
          format, 
          System.Globalization.CultureInfo.InvariantCulture, 
          System.Globalization.DateTimeStyles.None, 
          out date)) 
{ 
    //valid 
} 
+9

+1ですが、 'TryParseExact'で1つの書式文字列しか使用していない場合は、配列を渡す必要はありません:http://msdn.microsoft.com/en-us/library/ms131044.aspx – LukeH

関連する問題