
C#を利用した、文字列から日付型へ変換する方法を紹介します。
実際に仕事で、yyyyMMddを日付型へ変換することがよくあったので備忘録として残しておきます。
日付型から文字列へ変換する方法はこちらを参考にしてみてください。
yyyyMMddのフォーマットを指定して変換する方法
文字列から日付型へ変換するには、DateTime.Parseを利用するのですが、独自のフォーマットを使っていると変換できません。
特に、「yyyyMMdd」「yyyyMMddHHmmss」などよく使うけど変換できないフォーマットが存在します。
それらを変換するには、「DateTime.ParseExact」を利用しましょう。
DateTime.ParseExact(”文字列", "フォーマット", カルチャ固有の書式);
3つ目の引数は難しいので、「null」を入れておけば大丈夫です。
それではさっそく例を見てみましょう。「yyyyMMdd」の場合からやってみます。
DateTime dateTime = DateTime.ParseExact("20220726", "yyyyMMdd", null);
このように、フォーマットを指定することで変換することが可能です。
DateTime dateTime = DateTime.ParseExact("20220726071020", "yyyyMMddHHmmss", null);
「yyyyMMddHHmmss」も変換することができました。
文字列から日付型への変換
文字列から日付型へ変換する際に、フォーマットする必要のない場合は、「DateTime.Parse」を利用しましょう。
「yyyy/MM/dd」や「yyyy/MM/dd HH:mm:ss」の場合は、フォーマットの必要がありません。
DateTime.Parse("文字列");
例を見ていきましょう。
DateTime dateTime = DateTime.Parse("2022/07/26");
DateTime dateTime = DateTime.Parse("2022/07/26 07:10:20");
文字列から日付型へ変換することができました。
こちらは、特にフォーマットを指定することなく変換が可能になっています。
まとめ
今回は、文字列から日付型へ変換する方法を紹介しました。
- フォーマットが必要ない場合、「DateTime.Parse」
- フォーマットが必要ある場合、「DateTime.ParseExact」
を利用しましょう。
DateTime dateTime = DateTime.Parse("2022/07/26 07:10:20");
DateTime dateTime = DateTime.ParseExact("20220726071020", "yyyyMMddHHmmss", null);
フォーマットが必要あるのか、わからない場合は、
一度「DateTime.Parse」を利用して、エラーが出た場合は、「DateTime.ParseExact」を利用しましょう。