Parseメソッドでは、ToStringメソッドと同様に書式プロバイダを指定して変換を行うことも出来るようになっています。 例えば、入力される文字列を常にen-USの環境で使われる形式として解釈したい、といった場合にはParseメソッドの第二引数に書式プロバイダとしてen-USのCultureInfoを指定します。 指定しなかった場合やnull
/Nothing
を指定した場合は、現在のカルチャで使われる形式で表記されているものとして解釈されます。
DateTime/DateTimeOffset.Parseメソッドでカルチャを指定して文字列を変換する
using System;
using System.Globalization;
class Sample {
static void Main()
{
var input = "1/2/3";
Console.WriteLine(DateTime.Parse(input)); // 文字列は現在のカルチャの書式で解析される
Console.WriteLine(DateTime.Parse(input, null)); // 文字列は現在のカルチャの書式で解析される
Console.WriteLine(DateTime.Parse(input, new CultureInfo("en-US"))); // 文字列はen-USの書式で解析される
Console.WriteLine();
Console.WriteLine(DateTimeOffset.Parse(input)); // 文字列は現在のカルチャの書式で解析される
Console.WriteLine(DateTimeOffset.Parse(input, null)); // 文字列は現在のカルチャの書式で解析される
Console.WriteLine(DateTimeOffset.Parse(input, new CultureInfo("en-US"))); // 文字列はen-USの書式で解析される
Console.WriteLine();
}
}
実行結果
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メソッドでも書式プロバイダとしてインバリアントカルチャを指定することができます。