クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
Visual Studio 2008
Visual Studio
.NET Framework の基本開発
開発の基本
基本型の操作
型の書式設定
 カスタムの日付と時刻の書式指定文字列
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2008/.NET Framework 3.5

その他のバージョンについては、以下の情報を参照してください。
.NET Framework 開発者ガイド
カスタムの日付と時刻の書式指定文字列

更新 : 2007 年 11 月

カスタム日時書式指定文字列は、DateTime 値または DateTimeOffset 値の書式設定操作によって生成されるテキスト表現を定義します。カスタム書式指定文字列は、1 つまたは複数のカスタム日時書式指定子から成ります。標準の日時書式指定文字列以外の文字列は、すべてカスタム日時書式指定文字列として解釈されます。

注意   標準の日時書式指定文字列は、DateTime 値で使用することも、DateTimeOffset 値で使用することもできます。

カスタム日時書式指定子を次の表に示します。特に明記されない限り、特定のカスタム日時書式指定子は、DateTime 値で使用しても、DateTimeOffset 値で使用してもまったく同じ文字列形式を生成します。

書式指定子

説明

d

月の日にちを 1 ~ 31 の数値として表します。1 桁の日にちは、先行ゼロなしで書式設定されます。単一のカスタム書式指定子を使用する方法の詳細については、「単一のカスタム書式指定子の使用」を参照してください。

次の例では、複数の書式指定文字列の中に d カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As Date = #08/29/2008 7:27:15PM#

Console.WriteLine(date1.ToString("d, M", _
                  CultureInfo.InvariantCulture)) 
' Displays 29, 8

Console.WriteLine(date1.ToString("d MMMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays 29 August
Console.WriteLine(date1.ToString("d MMMM", _
                  CultureInfo.CreateSpecificCulture("es-MX")))
' Displays 29 agosto                                                

C#
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15); 

Console.WriteLine(date1.ToString("d, M", 
                  CultureInfo.InvariantCulture)); 
// Displays 29, 8

Console.WriteLine(date1.ToString("d MMMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays 29 August
Console.WriteLine(date1.ToString("d MMMM", 
                  CultureInfo.CreateSpecificCulture("es-MX")));
// Displays 29 agosto                                                

dd

月の日にちを 01 ~ 31 の数値として表します。1 桁の日にちは、先行ゼロ付きで書式設定されます。次の例では、カスタム書式指定文字列の中に dd カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As Date = #1/2/2008 6:30:15AM#

Console.WriteLine(date1.ToString("dd, MM", _
                  CultureInfo.InvariantCulture)) 
' 02, 01

C#
DateTime date1 = new DateTime(2008, 1, 2, 6, 30, 15);

Console.WriteLine(date1.ToString("dd, MM", 
                  CultureInfo.InvariantCulture)); 
// 02, 01

ddd

現在の DateTimeFormatInfo..::.AbbreviatedDayNames プロパティで定義されている曜日の省略名を表します。次の例では、カスタム書式指定文字列の中に ddd カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As Date = #08/29/2008 7:27:15PM#

Console.WriteLine(date1.ToString("ddd d MMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays ven. 29 aot                                                

C#
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);

Console.WriteLine(date1.ToString("ddd d MMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM", 
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays ven. 29 aot                                                

dddd (任意の数の d 指定子を追加可能)

現在の DateTimeFormatInfo..::.DayNames プロパティで定義されている曜日の完全な名前を表します。次の例では、カスタム書式指定文字列の中に dddd カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As Date = #08/29/2008 7:27:15PM#

Console.WriteLine(date1.ToString("dddd dd MMMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Friday 29 August
Console.WriteLine(date1.ToString("dddd dd MMMM", _
                  CultureInfo.CreateSpecificCulture("it-IT")))
' Displays venerd 29 agosto                                          

C#
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);

Console.WriteLine(date1.ToString("dddd dd MMMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Friday 29 August
Console.WriteLine(date1.ToString("dddd dd MMMM", 
                  CultureInfo.CreateSpecificCulture("it-IT")));
// Displays venerd 29 agosto                                

f

秒の端数の最上位桁 (つまり、日時値の秒部分の 1/10) を表します。

f 書式指定子が単独で使用され、その他の書式指定子がない場合、f は標準の日時書式指定子として解釈されます。単一の書式指定子を使用する方法の詳細については、「単一のカスタム書式指定子の使用」を参照してください。

ParseExactTryParseExactParseExactTryParseExact のいずれかのメソッドに渡す書式指定文字列の一部として使用された場合、使用された f 書式指定子の数は、文字列を正しく解析するために、秒の端数の最上位桁数が何桁存在している必要があるかを表します。

次の例では、カスタム書式指定文字列の中に f カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci))
' Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018

C#
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018

ff

秒の端数の最上位 2 桁 (つまり、日時値の秒部分の 1/100) を表します。次の例では、カスタム書式指定文字列の中に ff カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci))
' Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018

C#
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018

fff

秒の端数の最上位 3 桁 (つまり、日時値の秒部分の 1/1000) を表します。次の例では、カスタム書式指定文字列の中に fff カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci))
' Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018

C#
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018

ffff

秒の端数の最上位 4 桁 (つまり、日時値の秒部分の 1/10000) を表します。

時刻値の 1/10000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。日付および時刻の値の精度は、システム クロックの分解能に依存します。Windows NT 3.5 以降および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。

fffff

秒の端数の最上位 5 桁 (つまり、日時値の秒部分の 1/100000) を表します。

時刻値の 1/100000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。日付および時刻の値の精度は、システム クロックの分解能に依存します。Windows NT 3.5 以降および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。

ffffff

秒の端数の最上位 6 桁 (つまり、日時値の秒部分の 1/1000000) を表します。

時刻値の 1/1000000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。日付および時刻の値の精度は、システム クロックの分解能に依存します。Windows NT 3.5 以降および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。

fffffff

秒の端数の最上位 7 桁 (つまり、日時値の秒部分の 1/10000000) を表します。

時刻値の 1/10000000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。日付および時刻の値の精度は、システム クロックの分解能に依存します。Windows NT 3.5 以降および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。

F

秒の端数の最上位桁 (つまり、日時値の秒部分の 1/10) を表します。その桁がゼロの場合には、何も表示されません。

F 書式指定子が単独で使用され、その他の書式指定子がない場合、F は標準の日時書式指定子として解釈されます。単一の書式指定子を使用する方法の詳細については、「単一のカスタム書式指定子の使用」を参照してください。

ParseExactTryParseExactParseExactTryParseExact のいずれかのメソッドの引数として使用された場合、F 書式指定子の数は、秒の端数の最上位桁数が最大何桁あれば、文字列を正しく解析できるかを表します。

次の例では、カスタム書式指定文字列の中に F カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci))
' Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018

C#
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018

FF

秒の端数の最上位 2 桁 (つまり、日時値の秒部分の 1/100) を表します。ただし、後続のゼロは表示されません。また、2 桁のゼロも表示されません。次の例では、カスタム書式指定文字列の中に FF カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci))
' Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018

C#
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018

FFF

秒の端数の最上位 3 桁 (つまり、日時値の秒部分の 1/1000) を表します。ただし、後続のゼロは表示されません。また、3 桁のゼロも表示されません。次の例では、カスタム書式指定文字列の中に FFF カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci))
' Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018

C#
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018

FFFF

秒の端数の最上位 4 桁 (つまり、日時値の秒部分の 1/10000) を表します。ただし、後続のゼロは表示されません。また、4 桁のゼロも表示されません。

時刻値の 1/10000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。日付および時刻の値の精度は、システム クロックの分解能に依存します。Windows NT 3.5 以降および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。

FFFFF

秒の端数の最上位 5 桁 (つまり、日時値の秒部分の 1/100000) を表します。ただし、後続のゼロは表示されません。また、5 桁のゼロも表示されません。

時刻値の 1/100000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。日付および時刻の値の精度は、システム クロックの分解能に依存します。Windows NT 3.5 以降および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。

FFFFFF

秒の端数の最上位 6 桁 (つまり、日時値の秒部分の 1/1000000) を表します。ただし、後続のゼロは表示されません。また、6 桁のゼロも表示されません。

時刻値の 1/1000000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。日付および時刻の値の精度は、システム クロックの分解能に依存します。Windows NT 3.5 以降および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。

FFFFFFF

秒の端数の最上位 7 桁 (つまり、日時値の秒部分の 1/10000000) を表します。ただし、後続のゼロは表示されません。また、7 桁のゼロも表示されません。

時刻値の 1/10000000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。日付および時刻の値の精度は、システム クロックの分解能に依存します。Windows NT 3.5 以降および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。

g, gg (任意の数の g 指定子を追加可能)

年代または紀元を表します (A.D. など)。書式設定される日付に年代または紀元の文字列が関連付けられていない場合、この指定子は無視されます。単一の書式指定子を使用する方法の詳細については、「単一のカスタム書式指定子の使用」を参照してください。

次の例では、カスタム書式指定文字列の中に g カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As Date = #08/04/0070#

Console.WriteLine(date1.ToString("MM/dd/yyyy g", _
                  CultureInfo.InvariantCulture))
' Displays 08/04/0070 A.D.                        
Console.WriteLine(date1.ToString("MM/dd/yyyy g", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))                         
' Displays 08/04/0070 ap. J.-C.

C#
DateTime date1 = new DateTime(70, 08, 04);

Console.WriteLine(date1.ToString("MM/dd/yyyy g", 
                  CultureInfo.InvariantCulture));
// Displays 08/04/0070 A.D.                        
Console.WriteLine(date1.ToString("MM/dd/yyyy g", 
                  CultureInfo.CreateSpecificCulture("fr-FR")));                         
// Displays 08/04/0070 ap. J.-C.

h

時間を 1 ~ 12 の数値として表します。つまり、午前 0 時と午後 0 時から時間をカウントする 12 時間制で時間が表されます。午前 0 時からの特定の時間を、午後 0 時からの同じ時間と区別できません。時間は丸められず、1 桁の時間は先行ゼロなしで書式設定されます。たとえば、5:43 という時間は、このカスタム書式指定子によって "5" と表示されます。単一の書式指定子を使用する方法の詳細については、「単一のカスタム書式指定子の使用」を参照してください。

次の例では、カスタム書式指定文字列の中に h カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1                         
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1.5 

C#
DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1                         
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5 

hh, hh (任意の数の h 指定子を追加可能)

時間を 01 ~ 12 の数値として表します。つまり、午前 0 時と午後 0 時から時間をカウントする 12 時間制で時間が表されます。午前 0 時からの特定の時間を、午後 0 時からの同じ時間と区別できません。時間は丸められず、1 桁の時間は先行ゼロ付きで書式設定されます。たとえば、5:43 という時間は、この書式指定子によって "05" と表示されます。

次の例では、カスタム書式指定文字列の中に hh カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss.FF tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.FF tt", _
                  CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01 du.
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01.50 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
                  CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01.50 du.

C#
DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss.FF tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.FF tt", 
                  CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01 du.
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01.50 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", 
                  CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01.50 du.

H

時間を 0 ~ 23 の数値として表します。つまり、午前 0 時から時間をカウントする 24 時間制で時間が表されます。1 桁の時間は、先行ゼロなしで書式設定されます。

単一の書式指定子を使用する方法の詳細については、「単一のカスタム書式指定子の使用」を参照してください。

次の例では、カスタム書式指定文字列の中に H カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As Date = #6:09:01AM#
Console.WriteLine(date1.ToString("H:mm:ss", _
                  CultureInfo.InvariantCulture))
' Displays 6:09:01                        

C#
DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1);
Console.WriteLine(date1.ToString("H:mm:ss", 
                  CultureInfo.InvariantCulture));
// Displays 6:09:01              

HH, HH (任意の数の H 指定子を追加可能)

時間を 00 ~ 23 の数値として表します。つまり、午前 0 時から時間をカウントする 24 時間制で時間が表されます。1 桁の時間は、先行ゼロ付きで書式設定されます。次の例では、カスタム書式指定文字列の中に HH カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As Date = #6:09:01AM#
Console.WriteLine(date1.ToString("HH:mm:ss", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01                        

C#
DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1);
Console.WriteLine(date1.ToString("HH:mm:ss", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01                        

K

日付と時刻の値のタイム ゾーン情報を表します。DateTime 値で使用した場合、書式設定後の文字列は、DateTime..::.Kind プロパティの値によって定義されます。ローカル タイム ゾーンの場合 (DateTime..::.Kind プロパティ値 = DateTimeKind..::.Local)、この指定子は zzz 指定子に相当し、書式設定後の文字列には世界協定時刻 (UTC) からのローカル オフセットが含まれます ("-07:00" など)。UTC 時刻の場合 (DateTime..::.Kind プロパティ値 = DateTimeKind..::.Utc)、書式設定後の文字列には UTC 日付を表す "Z" 文字が含まれます。タイム ゾーンが指定されていない時刻の場合 (DateTime..::.Kind プロパティ = DateTimeKind..::.Unspecified)、String..::.Empty と同じ結果になります。K 書式指定子を DateTimeOffset 値で使用した場合、この指定子は zz 書式指定子に相当し、書式設定後の文字列には DateTimeOffset 値の UTC を基準としたオフセットが含まれます。

単一の書式指定子を使用する方法の詳細については、「単一のカスタム書式指定子の使用」を参照してください。

次の例では、米国太平洋標準時ゾーンのシステムで、K カスタム書式指定子と各種の DateTime 値および DateTimeOffset 値を組み合わせた結果の文字列を表示します。

Visual Basic
Console.WriteLine(Date.Now.ToString("%K"))
' Displays -07:00
Console.WriteLine(Date.UtcNow.ToString("%K"))
' Displays Z      
Console.WriteLine("'{0}'", _
                  Date.SpecifyKind(Date.Now, _
                                   DateTimeKind.Unspecified). _
                  ToString("%K"))
' Displays ''      
Console.WriteLine(DateTimeOffset.Now.ToString("%K"))
' Displays -07:00
Console.WriteLine(DateTimeOffset.UtcNow.ToString("%K"))
' Displays +00:00
Console.WriteLine(New DateTimeOffset(2008, 5, 1, 6, 30, 0, _
                                     New TimeSpan(5, 0, 0)). _
                  ToString("%K"))
' Displays +05:00                        

C#
Console.WriteLine(DateTime.Now.ToString("%K"));
// Displays -07:00
Console.WriteLine(DateTime.UtcNow.ToString("%K"));
// Displays Z      
Console.WriteLine("'{0}'", 
                  DateTime.SpecifyKind(DateTime.Now, 
                       DateTimeKind.Unspecified).ToString("%K"));
// Displays ''      
Console.WriteLine(DateTimeOffset.Now.ToString("%K"));
// Displays -07:00
Console.WriteLine(DateTimeOffset.UtcNow.ToString("%K"));
// Displays +00:00
Console.WriteLine(new DateTimeOffset(2008, 5, 1, 6, 30, 0, 
                      new TimeSpan(5, 0, 0)).ToString("%K"));
// Displays +05:00                        

m

分を 0 ~ 59 の数値として表します。この分は、直前の時間から経過した分数です。1 桁の分は、先行ゼロなしで書式設定されます。単一の書式指定子を使用する方法の詳細については、「単一のカスタム書式指定子の使用」を参照してください。次の例では、カスタム書式指定文字列の中に m カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1                         
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1.5 

C#
DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1                         
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5 

mm, mm (任意の数の m 指定子を追加可能)

分を 00 ~ 59 の数値として表します。この分は、直前の時間から経過した分数です。1 桁の分は、先行ゼロ付きで書式設定されます。次の例では、カスタム書式指定文字列の中に mm カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss.FF tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.FF tt", _
                  CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01 du.
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01.50 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
                  CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01.50 du.

C#
DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss.FF tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.FF tt", 
                  CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01 du.
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01.50 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", 
                  CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01.50 du.

M

月を 1 ~ 12 の数値として表します。1 桁の月は、先行ゼロなしで書式設定されます。単一の書式指定子を使用する方法の詳細については、「単一のカスタム書式指定子の使用」を参照してください。次の例では、カスタム書式指定文字列の中に M カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As Date = #8/18/2008#
Console.WriteLine(date1.ToString("(M) MMM, MMMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays (8) Aug, August
Console.WriteLine(date1.ToString("(M) MMM, MMMM", _
                  CultureInfo.CreateSpecificCulture("nl-NL")))                        
' Displays (8) aug, augustus
Console.WriteLine(date1.ToString("(M) MMM, MMMM", _
                  CultureInfo.CreateSpecificCulture("lv-LV")))                        
' Displays (8) Aug, augusts                       

C#
DateTime date1 = new DateTime(2008, 8, 18);
Console.WriteLine(date1.ToString("(M) MMM, MMMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays (8) Aug, August
Console.WriteLine(date1.ToString("(M) MMM, MMMM", 
                  CultureInfo.CreateSpecificCulture("nl-NL")));                       
// Displays (8) aug, augustus
Console.WriteLine(date1.ToString("(M) MMM, MMMM", 
                  CultureInfo.CreateSpecificCulture("lv-LV")));                        
// Displays (8) Aug, augusts                       

MM

月を 01 ~ 12 の数値として表します。1 桁の月は、先行ゼロ付きで書式設定されます。次の例では、カスタム書式指定文字列の中に MM カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As Date = #1/2/2008 6:30:15AM#

Console.WriteLine(date1.ToString("dd, MM", _
                  CultureInfo.InvariantCulture)) 
' 02, 01

C#
DateTime date1 = new DateTime(2008, 1, 2, 6, 30, 15);

Console.WriteLine(date1.ToString("dd, MM", 
                  CultureInfo.InvariantCulture)); 
// 02, 01

MMM

現在の DateTimeFormatInfo..::.AbbreviatedMonthNames プロパティで定義されている月の省略名を表します。次の例では、カスタム書式指定文字列の中に MMM カスタム書式指定子が含まれます。

Visual Basic
Dim date1 As Date = #08/29/2008 7:27:15PM#

Console.WriteLine(date1.ToString("ddd d MMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays ven. 29 aot                                                

C#
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);

Console.WriteLine(date1.ToString("ddd d MMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM", 
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays ven. 29 aot                                                

MMMM

現在の DateTimeFormatIn