文字列日付をDateTimeに変換する †文字列日時をDateTime型に変換するメソッド DateTime.ParseExact と DateTime.TryParseExact の使用例を紹介します。 関連サイト †
関連記事 †日時文字列の変換フォーマット †以下によく使うと思われる、年月日時分秒を指定する日時形式文字列について記します。
DateTime.ParseExact と DateTime.TryParseExact の違い †DateTime.ParseExactとDateTime.TryParseExactの違いは、変換失敗時に例外を発生するか、日時変換成功/失敗時にTrue/Falseを返却するかの違いになります。
サンプルコード †C#とVisual Basic(VB)のサンプルコードを紹介します。 C#のサンプルコード †using System; using System.Globalization; class Program { static void Main(string[] args) { String dt1str = @"2019/12/10 10:20:30"; String dt2str = @"2019/12/10 10:20:90"; String fmt = @"yyyy/MM/dd hh:mm:ss"; DateTime dt; // ParseExactのサンプル try { dt = DateTime.ParseExact(dt1str, fmt, null); Console.WriteLine("dt1str:" + dt); } catch (Exception ex) { Console.WriteLine("Exception:" + ex.Message); } try { dt = DateTime.ParseExact(dt2str, fmt, null); Console.WriteLine("dt2str:" + dt); } catch (Exception ex) { Console.WriteLine("Exception:" + ex.Message); } // TryParseExactのサンプル Boolean b; b = DateTime.TryParseExact(dt1str, fmt, null, DateTimeStyles.AssumeLocal, out dt); Console.WriteLine("dt1str:" + b); b = DateTime.TryParseExact(dt2str, fmt, null, DateTimeStyles.AssumeLocal, out dt); Console.WriteLine("dt2str:" + b); } } Visual Basic(VB)のサンプルコード †Imports System Imports System.Globalization Module Program Sub Main(args As String()) Dim dt1str As String = "2019/12/10 10:20:30" Dim dt2str As String = "2019/12/10 10:20:90" Dim fmt As String = "yyyy/MM/dd hh:mm:ss" Dim dt As DateTime ' ParseExactのサンプル Try dt = DateTime.ParseExact(dt1str, fmt, Nothing) Console.WriteLine("dt1str:" & dt) Catch ex As Exception Console.WriteLine("Exception:" & ex.Message) End Try Try dt = DateTime.ParseExact(dt2str, fmt, Nothing) Console.WriteLine("dt2str:" & dt) Catch ex As Exception Console.WriteLine("Exception:" & ex.Message) End Try ' TryParseExactのサンプル Dim b As Boolean b = DateTime.TryParseExact(dt1str, fmt, Nothing, DateTimeStyles.AssumeLocal, dt) Console.WriteLine("dt1str:" & b) b = DateTime.TryParseExact(dt2str, fmt, Nothing, DateTimeStyles.AssumeLocal, dt) Console.WriteLine("dt2str:" & b) End Sub End Module 実行結果 †実行結果は以下のようになります。 その他 †DateTime.TryParseExactメソッドでは、引数にDateTimeStyles.AssumeLocalを渡しています。 以上、文字列日時をDateTimeに変換するメソッドとサンプルコードの紹介でした。 |