dd/mm/yyyy形式の文字列をDatetimeに変換する
私はDotNetとC#の初心者です。mm/dd/yyyy形式の文字列を
DateTime`オブジェクトに変換したいと思っています。以下のようなparse関数を試してみましたが、ランタイムエラーが発生してしまいます。
DateTime dt=DateTime.Parse("24/01/2013");
datetimeに変換するにはどうしたらいいのでしょうか?
95
3
フォーマット
"dd/MM/yyyy"
を持つ DateTime.ParseExact` を使用する必要があります。フォーマットに
d/M/yyyy
を使用すると、一桁の曜日と二桁の月の両方を扱うことができるので、より安全です。しかし、これは一桁と二桁の値を想定しているかどうかによります。あなたの日付フォーマット
day/Month/Year
は、ある文化圏では受け入れられる日付フォーマットかもしれません。例えば、カナダ文化圏のen-CA
では、DateTime.Parse
は次のように動作します。または
上記の両方の行は,文字列のフォーマットが
en-CA
カルチャーに対応しているので動作します。DateTime.Parse`の呼び出しにカルチャを与えていないので,現在のカルチャは日付フォーマットをサポートしていない構文解析に使用されます。詳しくはDateTime.Parseをご覧ください。もう一つの解析方法は,DateTime.TryParseExact`を使う方法です。
.Netフレームワークの
TryParse
メソッド群は、無効な値に対して例外を投げるのではなく、解析の成功または失敗を示すbool
値を返します。日と月にそれぞれシングルの
d
とM
を使用していることに注意してください。シングルのd
とM
は、一桁/二桁の曜日と月の両方に使えます。ですから、フォーマットd/M/yyyy
に対して、有効な値は次のようになります。詳しくは、こちらをご覧ください。カスタム日付・時刻フォーマット文字列をご覧ください。
use
DateTime.ParseExact
.null` は現在のカルチャを使用しますが、これはやや危険です。特定のカルチャを指定してみてください
DateTime.ParseExact
][1]で使用する場合は、
"dd/MM/yyyy"`形式を使用できます。日時の指定された文字列表現を、指定されたフォーマットと文化を用いて 日時の指定された文字列表現を、指定されたフォーマットおよび文化固有のフォーマット情報を使用して、同等の DateTime に変換します。 指定されたフォーマットと文化固有のフォーマット情報を使用して**文字列表現のフォーマットは、指定されたフォーマットと 指定されたフォーマットと正確に一致する必要があります。
こちらは
DEMO
です。より詳しい情報は、
Custom Date and Time Format Strings
をご覧ください。