2017-08-10 8 views
-5
string mydate = "2017-08-03"; 

DateTime date = DateTime.ParseExact(mydate, "dd/MM/yyyy", null); 

ためしかし、私は得る:DateTime.ParseExact文字列

String was not recognized as a valid DateTime. 

は、どのように私は上記の形式でのDateTimeとして文字列をフォーマットすることができますか?

+0

あなたの文字列が使用している場合は - を日付部分の区切りとして、あなたのフォーマット文字列は、日付部分の区切りとセットと同じ文字を使用する必要がありますあなたの入力文字列と同じ順序でMMとyyyyを入力してください。 – Steve

+0

'DateTime'は*フォーマットを持っていません。彼らは01/01/0001の開始時の深夜0時から100nsの間隔の数を記録します。書式が必要な場合は、*文字列*が必要です。実際のデータとそのデータの可能な*表現*を混同しないでください。 –

答えて

3

これを試してください。mydate変数の日付形式を指定する必要があります。

DateTime date = DateTime.ParseExact(mydate, "yyyy-MM-dd", null); 
+0

と、日付のフォーマットを 'dd/MM/yyyy'にしたいのですか? –

+0

次に、ToString()メソッドdate.ToString( "dd/MM/yyyy")を使用できます。 したがって、ParseExactを使用して日付オブジェクトを初期化します。別の形式を出力するにはToStringを使用します。 – Verthosa

2

何をやっているように見えることはstring 1でのフォーマットを解析し、別の形式でフォーマットされたstringを返すようにしようとしています。

このシナリオでは、入力と出力は両方とも文字列で、DateTimeオブジェクト形式は現在のカルチャによって管理されています。何をしたい

string mydate = "2017-08-03"; 

mydate = DateTime.ParseExact(mydate, "yyyy-MM-dd", null).ToString("dd/MM/yyyy"); 

ですこれはinputが戻った文字列への出力を提供している.ToString("dd/MM/yyyy")を呼び出すのフォーマットを提供DateTime.ParseExact方法を実行してやっています。

MSDN Refereces:

DateTime.ParseExact

DateTime.ToString() Formats

Formatting a datetime for a specific culture

関連する問題