2016-06-14 12 views
0

これは、文字列の日付です:文字列の解析日付

dob = reader.GetValue(7).ToString();` return like "12/2/2012" 

しかし、私はこのフォーマット"2012212"に(それを渡す前に)変換したい、私は

string newDate = dob.ToString("yyyMMdd") 

を試してみました。しかし、私が得ました次のエラー:

The best overloaded method match for 'string.ToString(System.IFormatProvider)has some invalid arguments

どのようなアイデアですか?

+0

なぜ 'ToString'呼び出しますreader.GetValue(7) 'に?なぜそれを 'DateTime'としてキャストしないのですか? –

+0

'dob'が文字列として宣言されたためです。 –

+0

reader.GetDateTime(7)DateTimeオブジェクトを返しますか? – DespeiL

答えて

1

Not Exact way of getting output but it will work.

string dob = "12/2/2012"; 
    string[] d1 = dob.Split('/'); 
    string s = d1[2] + d1[1] + d1[0]; 
+0

はい、ありがとう...それはトリックをした –

+0

あなたを提案してうれしいです。 –

1

基本となる戻り値の型がDateTime

ある場合は、次にあなたがちょうどそれを文字列として保存され、受信された場合、私はDateTimeに変換することをお勧め..場合

reader.GetDateTime(7).ToString("yyyyMdd"); 

が必要SqlDataReader.GetDateTimeを使用することができますまず特定のフォーマットを探します。

var date = DateTime.ParseExact(dob, "dd/M/yyyy",CultureInfo.InvariantCulture); 
    var formattedDate = date.ToString("yyyyMdd"); 
+0

このコードは "{2/17/1993 12:00:00 AM}"を返す –

+0

@SaifManeaどのコード行? '2012212'を返す –

0
DateTime.ParseExact(reader.GetValue(7), "dd/M/dd", System.Globalization.CultureInfo.InvariantCulture).ToString("yyyyMMdd"); 
-1

あなたは、文字列を日付に変換するために、法の下に試すことができます。

IFormatProvider culture = new CultureInfo("en-US", true); 
dob = DateTime.ParseExact(reader.GetValue(7).ToString(), "dd/MM/yyyy", culture).ToString("yyyyMMdd"); 

ありがとうございます。

+0

この場合、日付形式はカルチャを定義していますか?あなたは深刻ですか? – DespeiL

0

あなたが「DDMMYYYY」形式の文字列の日付を持っているとする「YYYYMMDD」それを変換したい場合は、次のように行うことができます:

DateTime dt = DateTime.ParseExact(dob, "ddMMyyyy", 
            CultureInfo.InvariantCulture); 
dt.ToString("yyyyMMdd"); 
関連する問題