2016-08-18 7 views
-1

dd/MM/yyyy形式の文字列を変換しようとしています。カレンダーコントロールから来ています。MM/dd/yyyy形式です。C#DateTime変換からSting dd/MM/yyyyをDateTime MM/dd/yyyyに変換する

ここで私は間違っていますか?

+3

'DateTime'(これは 'format'を持っていません)に変換したいのですか、その形式の' DateTime'の文字列を出力したいですか? –

+0

@Gailad実際には13/02/1990にあります – parish

+3

カレンダーコントロールから来ているのなら、どうして*文字列*を使っていらっしゃいますか?あなたはあなたのコード全体で 'DateTime'型で作業する必要があります。スティーブンの指摘したように、フォーマットをしないでください。(http://referencesource.microsoft.com/#mscorlib/system/datetime.cs,130) –

答えて

1

あなたはDateTimeの自体は任意の形式のデータが格納されていないので、あなたは正確に解析するために提供形式は、入力文字列の形式である

DateTime myConvertedDate = DateTime.ParseExact(mydate ,"dd/MM/yyyy" , CultureInfo.InverientCulture); 

を行う必要があります。日付の書式は、何らかの方法で出力するために文字列に戻すときにのみ表示されます。あなたは、出力形式「MM/DD/YYYY」で日付をできたあなたが望む形式の日付を文字列に変換するために

myConvertedDate.ToString("MM/dd/yyyy"); 

を使用して欲しいです。

+0

Damien_The_Unbelieverが指摘しているように、カレンダーコントロールから日付が来ている場合は既にDateTime型になっているので、ParseExactを使用する必要はありませんToString( "MM/dd/yyyy")。 – sr28

+0

私はそれを使用しましたが、それでも私は同じ日に 'mydate = 19/07/2002'を表示していますが、まだ' 19/07/2002'を表示しています – parish

+0

@parish myDate = myConvertedDate.ToString( "MM/dd/yyyy"その後、myDateの値を見ますか? –

0

文字列を正しい形式で宣言するだけです。

DateTime date = DateTime.Now; 
    string a = date.ToString("MM/dd/yyyy"); 
0

ストリングの元の形式の日時に文字列解析 次のテストが通過する(すなわち"DD/MM/YYYY"。):

 

    string mydate = "13/05/2016"; 
    DateTime myConvertedDate = DateTime.ParseExact(mydate, "dd/MM/yyyy", CultureInfo.InvariantCulture); 

の日付を解析別の形式にだけ使用します。 myConvertedDate.ToString("MM/dd/yyyy")

+0

OPはどの時点でユニットテストを依頼しましたか? – sr28

+0

@ sr28 OPとは何ですか? は、ポイントを表示するためにテストを使用しました。 –

+0

OPは質問をした人です。このような例を挙げる場合は、なぜそれをしたのか、OPがコードにどのように適用できるのかを説明する必要があります。 ParseExactの使い方の例はまったくありません。これにより、営業担当者はあなたのコードをコピーするだけでいいと思うかもしれません(悪い考えですが、起こります)。 – sr28

0

は単純に、これを試して

yourDateTime.Value.toString("MM/dd/yyyy");