Console.WriteLineやString.Format、StreamWriter.WriteLineなどのメソッドでは複合書式設定を用いることができます。 複合書式設定でも、ToStringメソッドの場合と同様にDateTime/DateTimeOffsetの書式を指定することができます。 また書式だけでなく、右詰め・左詰めといった内容も同時に指定することが可能になっています。
Console.WriteLineなどのメソッドで複合書式を使ってDateTime/DateTimeOffsetを文字列に変換する
using System;
class Sample {
static void Main()
{
var dt = 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();
var dto = 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埋めなし)
}
}
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埋め・右揃え・左揃えを参照してください。