NoCurrentDateDefault
は、変換しようとする文字列中に日付がない場合、現在の日付ではなく 1年1月1日 (DateTime.Min)を表すものとして変換を行います。 なお、このオプションはDateTimeOffset.Parseでは無効で、指定した場合は例外ArgumentExceptionがスローされます。
なお、日付のみで時刻がない場合は常に00:00:00
を表すものとして変換を行います。 これはDateTimeおよびDateTimeOffsetともに同じ動作となります。
DateTime.ParseメソッドでDateTimeStyles.NoCurrentDateDefaultを指定し、今日ではなく1年1月1日の時刻として変換する
Imports System
Imports System.Globalization
Class Sample
Shared Sub Main()
Dim inputs() As String = New String() { _
"2013/04/03 15:00:30", _
"15:00:30", _
"15:00" _
}
Dim styles() As DateTimeStyles = New DateTimeStyles() { _
DateTimeStyles.None, _
DateTimeStyles.NoCurrentDateDefault _
}
' 文字列をDateTimeへ変換
For Each input As String In inputs
For Each style As DateTimeStyles In styles
Dim dt As DateTime = DateTime.Parse(input, Nothing, style)
Console.WriteLine("{0,-20} ({1,-22}) -> {2}", input, style, dt)
Next
Console.WriteLine()
Next
End Sub
End Class
実行結果例
2013/04/03 15:00:30 (None ) -> 2013/04/03 15:00:30 2013/04/03 15:00:30 (NoCurrentDateDefault ) -> 2013/04/03 15:00:30 15:00:30 (None ) -> 2013/03/02 15:00:30 15:00:30 (NoCurrentDateDefault ) -> 0001/01/01 15:00:30 15:00 (None ) -> 2013/03/02 15:00:00 15:00 (NoCurrentDateDefault ) -> 0001/01/01 15:00:00