この構造体は、頻繁に使われると思います。すでに、このHPでも第50章で使っています。
第50章で紹介したプロパティや列挙体の他に非常によく使われるものにToStringメソッドがあります。これは、C#2.0では4つのオーバーロードバージョンがあります。
public override string ToString ()これは、インスタンス値を文字列に変換しますが、後述の"G"書式指定をした書式で日時を表します。
public string ToString ( string format )formatに、指定された書式の文字列を返します。日時の書式指定には標準書式指定と、カスタム書式指定があります。
この章では標準書式指定の方法を解説します。
多くの場合、書式はコントロールパネルの「地域と言語のオプション」の設定の影響を 受けます。従って必ずしも「例」の通りには表示されません。
書式指定子 | 名前 | 例 |
---|---|---|
d | 短い形式の日付 | 2006/09/27 |
D | 長い形式の日付 | 2006年9月27日 |
t | 短い形式の時刻 | 21:03 |
T | 長い形式の時刻 | 21:03:12 |
f | 完全な日時と短い形式の時刻 | 2006年9月27日 21:03 |
F | 完全な日時と長い形式の時刻 | 2006年9月27日 21:03:12 |
g | 短い形式の日付と短い形式の時刻 | 2006/09/27 21:03 |
G | 短い形式の日付と長い形式の時刻 | 2006/09/27 21:03:12 |
Mまたはm | 月日 | 9月27日 |
Rまたはr | RFC1123 パターン | "ddd, dd MMM yyyy HH:mm:ss G\MT"(後の章で説明) |
s | 並べ替え可能な日付と時刻のパターン (ISO 8601 準拠) | "yyyy-MM-ddTHH:mm:ss" |
u | 並べ替え可能な日付と時刻のパターン (世界時刻) | "yyyy-MM-dd HH:mm:ssZ" |
U | 並べ替え可能な日付と時刻のパターン (世界時刻) | |
Yまたはy | 年月 | 2006年9月 |
では、日付時刻の書式指定の例を見てみましょう。
// datetime01.cs using System; class datetime01 { public static void Main() { DateTime dt; string[] dtformat = new string[]{ "D", "d", "F", "f", "G", "g", "U", "u", "Y", "y", "M", "m", "T", "t"}; dt = DateTime.Now; for (int i = 0; i < dtformat.Length; i++) Console.WriteLine("{0}: {1}", dtformat[i], dt.ToString(dtformat[i])); } }実行結果は次のようになります。
書式指定は単なる書式指定であり、日時を変換まではしてくれません。 uとかUでは、あらかじめ日時を世界協定時に変換しておくことが必要です。
Update 27/Sep/2006 By Y.Kumei