Parseメソッドでは、ToStringメソッドと同様に書式プロバイダを指定して変換を行うことも出来るようになっています。 例えば、入力される文字列を常にen-USの環境で使われる形式として解釈したい、といった場合にはParseメソッドの第二引数に書式プロバイダとしてen-USのCultureInfoを指定します。 指定しなかった場合やnull
/Nothing
を指定した場合は、現在のカルチャで使われる形式で表記されているものとして解釈されます。
DateTime/DateTimeOffset.Parseメソッドでカルチャを指定して文字列を変換する
Imports System
Imports System.Globalization
Class Sample
Shared Sub Main()
Dim input As String = "1/2/3"
Console.WriteLine(DateTime.Parse(input)) ' 文字列は現在のカルチャの書式で解析される
Console.WriteLine(DateTime.Parse(input, Nothing)) ' 文字列は現在のカルチャの書式で解析される
Console.WriteLine(DateTime.Parse(input, New CultureInfo("en-US"))) ' 文字列はen-USの書式で解析される
Console.WriteLine()
Console.WriteLine(DateTimeOffset.Parse(input)) ' 文字列は現在のカルチャの書式で解析される
Console.WriteLine(DateTimeOffset.Parse(input, Nothing)) ' 文字列は現在のカルチャの書式で解析される
Console.WriteLine(DateTimeOffset.Parse(input, New CultureInfo("en-US"))) ' 文字列はen-USの書式で解析される
Console.WriteLine()
End Sub
End Class
実行結果
2001/02/03 0:00:00 2001/02/03 0:00:00 2003/01/02 0:00:00 2001/02/03 0:00:00 +09:00 2001/02/03 0:00:00 +09:00 2003/01/02 0:00:00 +09:00
Parseメソッドでも書式プロバイダとしてインバリアントカルチャを指定することができます。