[.NET クラスライブラリ Tips][DateTime] 文字列型から日付型に変換する

スポンサーリンク

本記事の概要

この記事では、指定した文字列型から日付型に変換する方法について説明します。

公式サイト情報はコチラを参照してください。

文字列型から日付型に変換するには?

指定した文字列から日付型に変換するには Parse メソッド を使用します。

public static DateTime DateTime.Parse(string)

以下は、日付と時刻の文字列「2023/1/14 12:03:05」、日付のみの文字列「2023/1/14」、時刻のみの文字列「12:03:05」から、日付型(DateTime)に変換する例です。

DateTime dt1 = DateTime.Parse("2023/1/14 12:03:05"); // 日付と時刻
DateTime dt2 = DateTime.Parse("2023/1/14");          // 日付のみ
DateTime dt3 = DateTime.Parse("12:03:05");           // 時刻のみ

Console.WriteLine(dt1.ToString());
Console.WriteLine(dt2.ToString());
Console.WriteLine(dt3.ToString());
Parse メソッドの実行例

Parse メソッドの実行例

文字列型の値をフォーマットを指定して日付型に変換するには?

先ほどの例で使用した文字列は、いずれも日時や日のみ、時刻のみということが、見てもわかるものでした。

しかし、「20230114120000」のような文字列は、パッと見でもそれが日時を表しているかわかりません。また、このような文字列は、先ほどの Parse メソッドで変換しようとするとエラーになります。

このような場合は、ParseExact メソッドを使用して、フォーマットを指定して変換をします。

第1引数には日付型に変換したい文字列を、第2引数にはその文字列が示す書式を

public static DateTime ParseExact (string s, string format, IFormatProvider? provider);

以下の例は「20230114120305」という文字列が「yyyyMMddHHmmss」という書式であるということを指定して DateTime 型に変換をする例です。「20230114120305」を「yyyy/MM/dd HH:mm:ss」というフォーマットを指定して変換することはできません。あくまでも、その文字列が示す書式を指定します。

DateTime dt1 = DateTime.ParseExact("20230114120305", "yyyyMMddHHmmss", null);

Console.WriteLine(dt1.ToString());
ParseExact メソッドの実行例

ParseExact メソッドの実行例

 

Please follow and like us:

コメント

タイトルとURLをコピーしました