.NET では、カレントのカルチャで文字列がフォーマットされるため。以下のようにコーディングした場合は、カレントのカルチャである日本語で文字列が出力される。
string formatString = "ddd, dd MMM yyyy HH':'mm':'ss 'GMT'";
DateTime n = DateTime.Now;
System.Console.WriteLine(n.ToString(formatString));
上記のコードでの出力文字列は以下のようになる。
水, 31 3 2010 03:40:00 GMT
これを英語表記に変更する場合は、ToString メソッドのオーバーロードメソッドの第二引数に、フォーマットの元となるカルチャ ("en-US") を指定する。
string formatString = "ddd, dd MMM yyyy HH':'mm':'ss 'GMT'";
DateTime n = DateTime.Now;
SSystem.Console.WriteLine(n.ToString(formatString, new
System.Globalization.CultureInfo("en-US")));
もちろん、毎回 CultureInfo を生成するのが、オーバーヘッドとなるのであれば、シングルトンで作成しても構わない。しかし、これがオーバーヘッドになることは少なく、別の個所のボトルネックを解消したほうがよい。
コメント (0)
コメントの投稿