dとddは日にちを表します。このうちdは1桁の日にちは1桁で表します。ddは、
1桁の日にちも2桁で表します(02とか03など)。
dddとddddは曜日を表します(dddは省略名)。現在のカルチャに依存します。(カルチャについては後の章で解説します。)
fを単独で用いる(他の書式指定文字列が存在しない)ときは、長い形式の日付と短い形式の時刻 になります。その他の場合は、秒の端数の最上位となります。 ff...ffとfをn個(最大7個)続けると秒の端数の最上位n桁が表示されます。
Fを単独で用いると長い形式の日付と長い形式の時刻が表示されます。その他の場合は、 秒の端数の最上位桁が表示されます。その桁が0の時は何も表示されません。
FF...FFとFをn個(1から7個)続けると秒の端数の最上位n桁が表示されます。後続の0やn桁目の 0は表示されません。
gまたはggは紀元が表示されます。(カルチャに依存)
hは、時間が1-12で表示されます。0時は午前も午後も12と表示されます。1桁の時間は1桁で表示されます。
hhまたはhh..h(n個のh)は、時間を1-12で表します。1桁の時間は02などのように0が追加されます。
Hは時間を0-23で表します。1桁の時間は1桁で表示します。
HHまたはHH..H(n個のH)は、時間を0-23で表示し、1桁の時間は前に0を追加します。
mは分を0-59で表示します。1桁の分は1桁で表示します。
mmまたはmm..m(n個のm)は、分を0-59で表します。1桁の分は前に0を追加します。
Mは月を1-12で表します。1桁の月は1桁で表します。
MMは月を1-12で表します。1桁の月には前に0が追加されます。
MMMは、月の省略名を表示します。(カルチャに依存)
MMMMは、月の完全な名前を表示します。(カルチャに依存)
sは、秒を0-59で表示します。1桁の秒は1桁で表します。
ssまたはss...s(n個のs)は、秒を1-59で表します。1桁の秒は前に0を追加します。
tが単独で(他の書式指定文字列が使用されていない)は、長い形式の時刻を表示します。 そうでない場合は、A.M.またはP.M.の最初の文字を表示します。(カルチャ依存)
ttまたはtt..t(n個のt)は、A.M.またはP.M.が表示されます。(カルチャ依存)
yが単独で使われると短い形式の日付パターンが表示されます。 そうでないときは年の下2桁が表示されます。先頭が0の場合は0は表示されません。
yyは年の下2桁が表示されます。先頭が0の場合0も表示されます。
yyyyは、年の4桁表示です。4桁に満たない場合は先頭に0が追加されます。
ほかにもいくつかありますが、これくらい知ってれば充分でしょう。
では、これらを確かめるためのサンプルプログラムを見てみましょう。
// datetime02.cs using System; class datetime02 { public static void Main() { DateTime dt; string[] dtformat = new string[]{ "d", "dd", "ddd", "dddd", "ddddd", "f", "ff", "fff", "ffff", "fffff", "ffffff", "fffffff", "F", "FF", "FFF", "FFFF", "FFFFF", "FFFFFF", "FFFFFFF", "g", "gg", "hh", "m", "mm", "M", "MM", "MMM", "MMMM", "s", "ss", "t", "tt", "ttt", "y", "yy", "yyy", "yyyy", "yy/MM/dd h:m:s", "ggyyyy年MMMMdd日(dddd)"}; dt = DateTime.Now; for (int i = 0; i < dtformat.Length; i++) Console.WriteLine("{0,7}: {1}", dtformat[i], dt.ToString(dtformat[i])); } }実行結果は次のようになります。
Update 28/Sep/2006 By Y.Kumei