Console.WriteLineやString.Format、StreamWriter.WriteLineなどのメソッドでは複合書式設定を用いることができます。 複合書式設定でも、ToStringメソッドの場合と同様にDateTime/DateTimeOffsetの書式を指定することができます。 また書式だけでなく、右詰め・左詰めといった内容も同時に指定することが可能になっています。
Console.WriteLineなどのメソッドで複合書式を使ってDateTime/DateTimeOffsetを文字列に変換する
Imports System
Class Sample
Shared Sub Main()
Dim dt As DateTime = DateTime.Now
Console.WriteLine(dt)
Console.WriteLine("|{0,15:d}|", dt) ' 短い日付の形式・幅15で右揃え
Console.WriteLine("|{0,-15:d}|", dt) ' 短い日付の形式・幅15で左揃え
Console.WriteLine("{0:%y}-{0:%M}-{0:%d}", dt) ' 年-月-日 (0埋めなし)
Console.WriteLine()
Dim dto As DateTimeOffset = DateTimeOffset.Now
Console.WriteLine(dto)
Console.WriteLine("|{0,15:d}|", dto) ' 短い日付の形式・幅15で右揃え
Console.WriteLine("|{0,-15:d}|", dto) ' 短い日付の形式・幅15で左揃え
Console.WriteLine("{0:%y}-{0:%M}-{0:%d}", dto) ' 年-月-日 (0埋めなし)
End Sub
End Class
ja-JPでの実行結果例
2013/04/01 15:00:30 | 2013/04/01| |2013/04/01 | 13-4-1 2013/04/01 15:00:30 +09:00 | 2013/04/01| |2013/04/01 | 13-4-1
上記の例で使用している書式のうち%
で始まるものは、複合書式設定特有の記述ではなく、カスタム書式指定子であること(標準の書式指定子として扱われないようにすること)を明示するためのものです。
複合書式設定についてより詳しくは書式指定子 §.複合書式設定と0埋め・右揃え・左揃えを参照してください。