一方、ローカライズされる書式とは異なり、ローカライズされない書式の書式指定子も用意されています。 これらの書式では、実行環境によらず常に同じ結果が得られます。
標準の書式指定子を使ってDateTime/DateTimeOffsetを文字列に変換する(ローカライズされない書式の例)
using System;
class Sample {
static void Main()
{
var dt = DateTime.Now;
Console.WriteLine("r : {0}", dt.ToString("r")); // RFC1123形式
Console.WriteLine("o : {0}", dt.ToString("o")); // ISO8601(W3C-DTF)形式
Console.WriteLine("s : {0}", dt.ToString("s")); // ISO8601形式に似た、ソートに適した形式
Console.WriteLine("u : {0}", dt.ToString("u")); // ISO8601形式に似た、ソートに適した形式 (UTC)
Console.WriteLine();
var dto = DateTimeOffset.Now;
Console.WriteLine("r : {0}", dto.ToString("r")); // RFC1123形式
Console.WriteLine("o : {0}", dto.ToString("o")); // ISO8601(W3C-DTF)形式
Console.WriteLine("s : {0}", dto.ToString("s")); // ISO8601形式に似た、ソートに適した形式
Console.WriteLine("u : {0}", dto.ToString("u")); // ISO8601形式に似た、ソートに適した形式 (UTC)
Console.WriteLine();
}
}
実行結果例
r : Mon, 01 Apr 2013 15:00:30 GMT o : 2013-04-01T15:00:30.1230000+09:00 s : 2013-04-01T15:00:30 u : 2013-04-01 15:00:30Z r : Mon, 01 Apr 2013 06:00:30 GMT o : 2013-04-01T15:00:30.1230000+09:00 s : 2013-04-01T15:00:30 u : 2013-04-01 06:00:30Z
このように標準の書式にはいくつかの種類があり、ローカライズされるものとそうでないものが存在します。 さらに、書式によってはUTCへの変換が行われた上で文字列化されるものもあります。 各書式のより詳細な解説については書式指定子 §.日付と時刻の書式指定子を参照してください。 また、書式とローカライズに関しては別途解説します。