Parseメソッドは、日付のみ・時刻のみといった不完全な日時を表す文字列も解析出来ます。 この際、時刻部分に欠損があれば0時0分0秒、日付部分に欠損があれば現在の日付を表すものとして扱われます。 DateTimeOffset.Parseメソッドの場合、オフセット値に欠損がある場合はローカル時刻のオフセット値が設定されます。
DateTime/DateTimeOffset.Parseメソッドで不完全な日時の文字列を変換する
Imports System
Class Sample
Shared Sub Main()
Dim inputs() As String = New String() { _
"Mon, 01 Apr 2013", _
"15:00:30", _
"2013-04", _
"15:00:30.12-05:00", _
"15:00", _
"2013年4月1日" _
}
' 文字列をDateTimeに変換
For Each input As String In inputs
Console.WriteLine("{0,-20} -> {1}", input, DateTime.Parse(input))
Next
Console.WriteLine()
' 文字列をDateTimeOffsetに変換
For Each input As String In inputs
Console.WriteLine("{0,-20} -> {1}", input, DateTimeOffset.Parse(input))
Next
Console.WriteLine()
End Sub
End Class
実行結果
Mon, 01 Apr 2013 -> 2013/04/01 0:00:00 15:00:30 -> 2013/02/03 15:00:30 2013-04 -> 2013/04/01 0:00:00 15:00:30.12-05:00 -> 2013/02/04 5:00:30 15:00 -> 2013/02/03 15:00:00 2013年4月1日 -> 2013/04/01 0:00:00 Mon, 01 Apr 2013 -> 2013/04/01 0:00:00 +09:00 15:00:30 -> 2013/02/03 15:00:30 +09:00 2013-04 -> 2013/04/01 0:00:00 +09:00 15:00:30.12-05:00 -> 2013/02/03 15:00:30 -05:00 15:00 -> 2013/02/03 15:00:00 +09:00 2013年4月1日 -> 2013/04/01 0:00:00 +09:00