本記事の概要
この記事では、指定した文字列型から日付型に変換する方法について説明します。
公式サイト情報はコチラを参照してください。
文字列型から日付型に変換するには?
指定した文字列から日付型に変換するには 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());
文字列型の値をフォーマットを指定して日付型に変換するには?
先ほどの例で使用した文字列は、いずれも日時や日のみ、時刻のみということが、見てもわかるものでした。
しかし、「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());
Please follow and like us:
コメント