一方、ローカライズされる書式とは異なり、ローカライズされない書式の書式指定子も用意されています。 これらの書式では、実行環境によらず常に同じ結果が得られます。
標準の書式指定子を使ってDateTime/DateTimeOffsetを文字列に変換する(ローカライズされない書式の例)
Imports System
Class Sample
Shared Sub Main()
Dim dt As DateTime = 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()
Dim dto As DateTimeOffset = 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()
End Sub
End Class
実行結果例
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への変換が行われた上で文字列化されるものもあります。 各書式のより詳細な解説については書式指定子 §.日付と時刻の書式指定子を参照してください。 また、書式とローカライズに関しては別途解説します。