DateTime/DateTimeOffset.TryParseExactメソッドで複数の書式を指定して文字列からの変換を試みる 言語: VB C# ParseExact・TryParseExactメソッドで複数の書式を許容するようにしたい場合は、次の例のように、その書式を配列で指定します。 どれか一つでも一致する書式があれば、変換に成功します。 DateTime/DateTimeOffset.TryParseExactメソッドで複数の書式を指定して文字列からの変換を試みる すべて選択してコピー ダウンロード 行番号を表示する Imports System Imports System.Globalization Class Sample Shared Sub Main() Dim inputs() As String = New String() { _ "Mon, 01 Apr 2013 15:00:30 GMT", _ "2013年4月1日 15:00:30", _ "2013-04-01T15:00:30.1230000+09:00", _ "2013-04-01T15:00:30.1230000", _ "2013-04-01", _ "15:00:30" _ } ' 変換時に許容する書式 Dim formats() As String = New String() { _ "o", _ "yyyy-MM-dd", _ "HH:mm:ss" _ } For Each input As String In inputs Dim dt As DateTime ' 指定した書式で文字列からDateTimeへの変換を試行 If DateTime.TryParseExact(input, formats, Nothing, DateTimeStyles.None, dt) Then Console.WriteLine("{0,-35} -> {1}", input, dt) Else Console.WriteLine("{0,-35} -> (invalid format)", input) End If Next Console.WriteLine() For Each input As String In inputs Dim dto As DateTimeOffset ' 指定した書式で文字列からDateTimeOffsetへの変換を試行 If DateTimeOffset.TryParseExact(input, formats, Nothing, DateTimeStyles.None, dto) Then Console.WriteLine("{0,-35} -> {1}", input, dto) Else Console.WriteLine("{0,-35} -> (invalid format)", input) End If Next Console.WriteLine() End Sub End Class 実行結果 Mon, 01 Apr 2013 15:00:30 GMT -> (invalid format) 2013年4月1日 15:00:30 -> (invalid format) 2013-04-01T15:00:30.1230000+09:00 -> 2013/04/01 15:00:30 2013-04-01T15:00:30.1230000 -> 2013/04/01 15:00:30 2013-04-01 -> 2013/04/01 0:00:00 15:00:30 -> 2013/03/08 15:00:30 Mon, 01 Apr 2013 15:00:30 GMT -> (invalid format) 2013年4月1日 15:00:30 -> (invalid format) 2013-04-01T15:00:30.1230000+09:00 -> 2013/04/01 15:00:30 +09:00 2013-04-01T15:00:30.1230000 -> 2013/04/01 15:00:30 +09:00 2013-04-01 -> 2013/04/01 0:00:00 +09:00 15:00:30 -> 2013/03/08 15:00:30 +09:00 関連するページ DateTime/DateTimeOffset.Parseメソッドでカルチャを指定して文字列を変換する DateTime/DateTimeOffset.ParseExactメソッドで指定された書式に一致する文字列のみを変換する DateTime/DateTimeOffset.TryParseExactメソッドで書式を指定して文字列からの変換を試みる DateTime/DateTimeOffset.TryParseExactメソッドでDateTimeStylesを指定して文字列中の空白の扱いを指定する DateTime/DateTimeOffset.ParseExactメソッドでDateTimeStylesを指定し、時刻をローカル時刻またはUTCとみなして変換する DateTime/DateTimeOffset.ParseExactメソッドでDateTimeStylesを指定し、変換した時刻のオフセットを補正または維持する DateTime.ParseメソッドでDateTimeStyles.NoCurrentDateDefaultを指定し、今日ではなく1年1月1日の時刻として変換する