C#のDateTime.TryParseExactとは?C#のDateTime.TryParseExactを使って文字列をDateTime変換する方法

公開日時:   更新日時:
C#のDateTime.TryParseExactとは?C#のDateTime.TryParseExactを使って文字列をDateTime変換する方法
基本情報技術者試験の試験対策はこちら>>

SE
C#のDateTime.TryParseExactとはなんですか?

PM
DateTime.TryParseExactでは、様々なフォーマットの日付文字列をエラーなく変換できます。使い方を見ていきましょう。

C#のDateTime.TryParseExactとは?


今回は、C#のDateTimeクラスのTryParseExactメソッドについて説明します。

C#では独自のフォーマットで定義したstring型の日付を、DateTimeに変換できるか検証する時に、DateTimeクラスのTryParseExactメソッドが使えます。DateTime.TryParseExactメソッドを使いこなせば様々なフォーマットの日付文字列を、例外エラーを起こすことなく変換できます。

C#のDateTime.TryParseExactメソッドを用いたDateTime変換に興味のある方はぜひご覧ください。

C#のDateTime.TryParseExactを使って文字列をDateTime変換する方法


C#ではDateTimeクラスのTryParseExactメソッドに似た、同じくDateTimeクラスのTryParseメソッドが存在します。日付文字列をDateTimeへと変換可能か検証し、可能であれば変換するという役割はTryParseExactメソッドと同様ですが、TryParseExactメソッドでは独自に指定されたフォーマットの日付文字列を変換できる点がTryParseメソッドと異なります。

DateTimeクラスとは、C#において日付を扱う時に用いるクラスのことです。DateTimeを使えば年月日の取得や日付の比較など、日付に関する様々な処理ができるので、DateTimeに変換することはプログラムで日付を扱ううえで便利です。

日付文字列から日付に関する処理をC#で行う場合は、DateTime.TryParseメソッドやDateTime.TryParseExactメソッドを使ってDateTimeへと変換しましょう。

それではDateTime.TryParseメソッドとDateTime.TryParseExactメソッドの使い方について説明します。

DateTime.TryParseメソッド

C#のDateTime.TryParseメソッドは、string型の日付をDateTimeに変換する時に使います。

第1引数はstring型で、第4引数はDateTime型です。第1引数に日付文字列をセットし、メソッドを実行することで、DateTimeに変換された値が第4引数にセットされます。

第2引数はCultureInfo型で、カルチャーを表します。通常は日本語環境で実行されるため、CultureInfo.CurrentCultureの指定で支障ありませんが、例えば取得結果を英語表記にする場合はCultureInfo(“en-US”)にするなど、言語に応じて使い分けましょう。

第3引数はDateTimeStyles型で、文字列解析をカスタマイズする形式指定オプションを定義します。通常はDateTimeStyles.Noneで構いません。ただし第1引数に渡す日付文字列に空白を含む場合はAllowLeadingWhite、AllowTrailingWhiteなど、必要に応じて指定しましょう。

メソッドの戻り値はbool型で、第1引数がDateTimeに変換できたらTrueが、変換に失敗したらFalseが返されます。

以下、日付文字列をDateTimeに変換するサンプルプログラムのソースコードです。プログラムの先頭に

を記述してください。

実行結果は次のように出力されます。

2021/05/01 15:30:10

string型のDateTime変換はDateTime.Parseメソッドでも可能ですが、変換に失敗すると例外エラーになります。例外エラーを回避したい場合はDateTime.TryParseメソッドを使いましょう。

試しに上記サンプルプログラムにて、変数のdateStringに”2021/05/32 15:30:10″をセットしてプログラムを実行すると、TryParseメソッドでFalseが返され、「変換に失敗しました」とコンソール出力されます。

DateTime.TryParseExactメソッド

以上、C#のDateTime.TryParseメソッドについて説明しました。続いて、TryParseメソッドの拡張版であるDateTime.TryParseExactメソッドについて説明します。

DateTimeに変換する日付文字列が独自で定義されているフォーマットの場合、TryParseExactメソッドを使うことが可能です。

第1引数、第3~5引数は、TryParseメソッドで説明した内容と同じです。第2引数のformatはstring型で、ユーザーが任意に指定した日付のフォーマットを設定します。

以下、任意フォーマットの日付文字列をDateTimeに変換するサンプルプログラムのソースコードです。

実行結果は次のように出力されます。

2021-05-01 15:30:10

また、上記以外のフォーマットで変換する場合は、

いずれも正常に変換され、DateTime変数がコンソール出力されます。

SE
DateTime.TryParseExactを使ってDateTime変換する方法が分かりました。

PM
DateTime.TryParseExactについて理解を深めて、実際にコードを書いてみましょう。

C#のDateTime.TryParseExactを使って文字列をDateTime変換しよう!


いかがだったでしょうか。C#ではDateTime.TryParseExactメソッドで、任意の日付フォーマットの文字列がDateTime変換可能か検証でき、可能であればDateTime変換された値を取得できます。

DateTime.Parseメソッドとは違い、変換に失敗した場合に例外エラーが起きません。その点を考慮しながらTryParseExactメソッドと使い分けましょう。

任意の日付フォーマットの文字列をDateTime変換する場面がありましたら、ぜひこの記事を参考にしてください。


FEnetへの登録は左下のチャットが便利です 経験者優遇! 最短10秒!

.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags