カスタム DateTime 書式指定文字列

カスタム DateTime 書式指定文字列は、1 つ以上のカスタム DateTime 書式指定子で構成されます。この書式指定文字列は、書式設定操作によって生成される DateTime オブジェクトのテキスト表現を定義します。標準の DateTime 書式指定文字列以外の文字列は、すべてカスタム DateTime 書式指定文字列として解釈されるので注意してください。

カスタム DateTime 書式指定子

カスタム DateTime 書式指定子を次の表に示します。各書式指定子によって生成される出力の例については、「カスタム DateTime 書式指定文字列の出力例」を参照してください。

書式指定子 説明

d

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

dd

月の日にちを 01 ~ 31 の数値として表します。1 桁の日にちは、先行ゼロ付きで書式設定されます。

ddd

現在の System.Globalization.DateTimeFormatInfo.AbbreviatedDayNames プロパティで定義されている曜日の省略名を表します。

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

現在の System.Globalization.DateTimeFormatInfo.DayNames プロパティで定義されている曜日の完全な名前を表します。

f

秒の端数の最上位桁を表します。

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

この書式指定子を ParseExact メソッドまたは TryParseExact メソッドで使用する場合は、使用する "f" 書式指定子の数が、解析する秒の端数の最上位桁数を示します。

ff

秒の端数の最上位 2 桁を表します。

fff

秒の端数の最上位 3 桁を表します。

ffff

秒の端数の最上位 4 桁を表します。

fffff

秒の端数の最上位 5‏ 桁を表します。

ffffff

秒の端数の最上位 6 桁を表します。

fffffff

秒の端数の最上位 7 桁を表します。

F

秒の端数の最上位桁を表します。その桁がゼロの場合には、何も表示されません。単一の書式指定子を使用する方法の詳細については、「単一のカスタム書式指定子の使用」を参照してください。

この書式指定子を ParseExact メソッドまたは TryParseExact メソッドで使用する場合は、使用する "F" 書式指定子の数が、解析する秒の端数の最上位桁数の上限を示します。

FF

秒の端数の最上位 2 桁を表します。ただし、後続のゼロは表示されません。また、2 桁のゼロも表示されません。

FFF

秒の端数の最上位 3 桁を表します。ただし、後続のゼロは表示されません。また、3 桁のゼロも表示されません。

FFFF

秒の端数の最上位 4 桁を表します。ただし、後続のゼロは表示されません。また、4 桁のゼロも表示されません。

FFFFF

秒の端数の最上位 5‏ 桁を表します。ただし、後続のゼロは表示されません。また、5 桁のゼロも表示されません。

FFFFFF

秒の端数の最上位 6 桁を表します。ただし、後続のゼロは表示されません。また、6 桁のゼロも表示されません。

FFFFFFF

秒の端数の最上位 7 桁を表します。ただし、後続のゼロは表示されません。また、7 桁のゼロも表示されません。

g または gg (任意の数の "g" 指定子を追加可能)

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

h

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

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

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

H

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

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

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

K

DateTime.Kind プロパティの各種の値、つまり Local (現地時刻)、Utc (世界時刻)、または Unspecified (不特定) を表します。この指定子は、種類値をテキストでラウンド トリップし、タイム ゾーンを保持します。Local 種類値の場合は、この指定子が "zzz" 指定子と同じになり、"-07:00" などのローカル オフセットが表示されます。Utc 種類値の場合は、この指定子によって UTC の日付を表す "Z" 文字が表示されます。Unspecified 種類値の場合は、この指定子が "" (何もなし) と同じになります。

m

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

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

分を 00 ~ 59 の数値として表します。この分は、直前の時間から経過した分数です。1 桁の分は、先行ゼロ付きで書式設定されます。

M

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

MM

月を 01 ~ 12 の数値として表します。1 桁の月は、先行ゼロ付きで書式設定されます。

MMM

現在の System.Globalization.DateTimeFormatInfo.AbbreviatedMonthNames プロパティで定義されている月の省略名を表します。

MMMM

現在の System.Globalization.DateTimeFormatInfo.MonthNames プロパティで定義されている月の完全な名前を表します。

s

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

ss, ss (任意の数の "s" 指定子を追加可能)

秒を 00 ~ 59 の数値として表します。この秒は、直前の分から経過した秒数です。1 桁の秒は、先行ゼロ付きで書式設定されます。

t

現在の System.Globalization.DateTimeFormatInfo.AMDesignator プロパティまたは System.Globalization.DateTimeFormatInfo.PMDesignator プロパティで定義されている A.M./P.M. 指定子の最初の文字を表します。A.M. 指定子は、書式設定される時刻の時間が 12 未満である場合に使用され、それ以外の場合は P.M. 指定子が使用されます。単一の書式指定子を使用する方法の詳細については、「単一のカスタム書式指定子の使用」を参照してください。

tt, tt (任意の数の "t" 指定子を追加可能)

現在の System.Globalization.DateTimeFormatInfo.AMDesignator プロパティまたは System.Globalization.DateTimeFormatInfo.PMDesignator プロパティで定義されている A.M./P.M. 指定子を表します。A.M. 指定子は、書式設定される時刻の時間が 12 未満である場合に使用され、それ以外の場合は P.M. 指定子が使用されます。

y

年を最大 2 桁の数値として表します。年が 2 桁を超える場合は、下 2 桁のみが結果に表示されます。年が 2 桁に満たない場合は、数値が先行ゼロなしで書式設定されます。単一の書式指定子を使用する方法の詳細については、「単一のカスタム書式指定子の使用」を参照してください。

yy

年を 2 桁の数値として表します。年が 2 桁を超える場合は、下 2 桁のみが結果に表示されます。年が 2 桁に満たない場合は、2 桁になるまで数値が先行ゼロで埋められます。

yyy

年を 3 桁の数値として表します。年が 3 桁を超える場合は、下 3 桁のみが結果に表示されます。年が 3 桁に満たない場合は、3 桁になるまで数値が先行ゼロで埋められます。

年が 5 桁になることがあるタイ仏暦については、この書式指定子で 5 桁すべてが表示されるので注意してください。

yyyy

年を 4 桁の数値として表します。年が 4 桁を超える場合は、下 4 桁のみが結果に表示されます。年が 4 桁に満たない場合は、4 桁になるまで数値が先行ゼロで埋められます。

年が 5 桁になることがあるタイ仏暦については、この書式指定子で 5 桁すべてが表示されるので注意してください。

yyyyy (任意の数の "y" 指定子を追加可能)

年を 5 桁の数値として表します。年が 5 桁を超える場合は、下 5 桁のみが結果に表示されます。年が 5 桁に満たない場合は、5 桁になるまで数値が先行ゼロで埋められます。

"y" 指定子を追加すると、"y" 指定子の数と同じ桁数になるまで数値が先行ゼロで埋められます。

z

グリニッジ標準時 (GMT) からのシステムのタイム ゾーン オフセットを、符号と共に時間単位で表します。たとえば、太平洋標準時ゾーンを使用するコンピュータのオフセットは "-8" です。

このオフセットは、常に先頭の符号と共に表示されます。正符号 (+) は GMT より時間が進んでいることを示し、負符号 (-) は GMT より時間が遅れていることを示します。オフセットの範囲は –12 ~ +13 です。1 桁のオフセットは、先行ゼロなしで書式設定されます。オフセットには夏時間が反映されます。単一の書式指定子を使用する方法の詳細については、「単一のカスタム書式指定子の使用」を参照してください。

zz

グリニッジ標準時 (GMT) からのシステムのタイム ゾーン オフセットを、符号と共に時間単位で表します。たとえば、太平洋標準時ゾーンを使用するコンピュータのオフセットは "-08" です。

このオフセットは、常に先頭の符号と共に表示されます。正符号 (+) は GMT より時間が進んでいることを示し、負符号 (-) は GMT より時間が遅れていることを示します。オフセットの範囲は –12 ~ +13 です。1 桁のオフセットは、先行ゼロ付きで書式設定されます。オフセットには夏時間が反映されます。

zzz, zzz (任意の数の "z" 指定子を追加可能)

グリニッジ標準時 (GMT) からのシステムのタイム ゾーン オフセットを、符号と共に時間と分の単位で表します。たとえば、太平洋標準時ゾーンを使用するコンピュータのオフセットは "-08:00" です。

このオフセットは、常に先頭の符号と共に表示されます。正符号 (+) は GMT より時間が進んでいることを示し、負符号 (-) は GMT より時間が遅れていることを示します。オフセットの範囲は –12 ~ +13 です。1 桁のオフセットは、先行ゼロ付きで書式設定されます。オフセットには夏時間が反映されます。

:

現在の System.Globalization.DateTimeFormatInfo.TimeSeparator プロパティで定義されている時刻の区切り記号です。時間、分、および秒を区別するために使用されます。

/

現在の System.Globalization.DateTimeFormatInfo.DateSeparator プロパティで定義されている日付の区切り記号です。年、月、および日を区別するために使用されます。

"

引用符 (二重引用符) で囲まれた文字列です。2 つの二重引用符 (") で囲まれた文字列のリテラル値が表示されます。各引用符の前にはエスケープ文字 (\) が必要です。

'

引用符 (アポストロフィ) で囲まれた文字列です。2 つのアポストロフィ (') 文字で囲まれた文字列のリテラル値が表示されます。

%c

カスタム DateTime 書式指定文字列が "c" カスタム書式指定子だけで構成されている場合に、そのカスタム書式指定子に関連付けられた結果を表します。つまり、"d"、"f"、"F"、"h"、"m"、"s"、"t"、"y"、"z"、"H"、"M" の各カスタム書式指定子を単独で使用するには、それぞれ "%d"、"%f"、"%F"、"%h"、"%m"、"%s"、"%t"、"%y"、"%z"、"%H"、"%M" と指定します。単一の書式指定子を使用する方法の詳細については、「単一のカスタム書式指定子の使用」を参照してください。

\c

エスケープ文字です。"c" の文字の前にエスケープ文字 (\) を付けると、その文字がリテラルとして表示されます。結果の文字列に円記号そのものを挿入する場合は、2 つのエスケープ文字 ("\\") を使用します。

その他の文字

その他の文字は結果の文字列にコピーされ、書式設定には影響しません。

コントロール パネルの設定

コントロール パネルの [地域と言語のオプション] での設定は、書式設定操作によって生成される結果の文字列に影響します。これらの設定は、現在のスレッド カルチャに関連付けられた DateTimeFormatInfo オブジェクトを初期化するために使用され、現在のスレッド カルチャから書式設定の制御に使用される値が提供されます。コンピュータで使用する設定が異なる場合は、生成される文字列も異なります。

DateTimeFormatInfo のプロパティ

書式設定は、現在の DateTimeFormatInfo オブジェクトのプロパティの影響を受けます。このオブジェクトは、現在のスレッド カルチャによって暗黙的に指定されるか、または書式設定を実行するメソッドの IFormatProvider パラメータによって明示的に指定されます。IFormatProvider パラメータには、カルチャを表す CultureInfo オブジェクト、または DateTimeFormatInfo オブジェクトを指定します。

標準の DateTime 書式指定子の多くは、現在の DateTimeFormatInfo オブジェクトのプロパティによって定義されている書式設定パターンのエイリアスです。つまり、一部の標準 DateTime 書式指定子で生成される結果は、対応する DateTimeFormatInfo プロパティを変更することで変更できます。

単一のカスタム書式指定子の使用

カスタム DateTime 書式指定文字列は、複数の文字で構成されます。たとえば、書式指定文字列が "h" 指定子のみで構成される場合、その書式指定文字列は標準の DateTime 書式指定文字列として解釈されます。ただし、この場合では、"h" という標準の DateTime 書式指定子が存在しないため、例外がスローされます。

単一のカスタム DateTime 書式指定子を使用するには、DateTime 指定子の前または後に空白を挿入するか、または DateTime 指定子の前にパーセント (%) 書式指定子を挿入します。たとえば、"h " および "%h" の各書式指定文字列は、現在の DateTime オブジェクトで表される時刻を表示するカスタム DateTime 書式指定文字列として解釈されます。空白を使用すると、結果の文字列にその空白がリテラル文字として表示されるので注意してください。

カスタム書式指定文字列の使用

DateTime オブジェクトからカスタム書式指定文字列を作成する方法を次のコード例に示します。このコード例では、現在のカルチャが英語 - 米国 (en-US) であることを前提としています。

Dim MyDate As New DateTime(2000, 1, 1, 0, 0, 0)
Dim MyString As String = MyDate.ToString("dddd - d - MMMM")
' In the U.S. English culture, MyString has the value: 
' "Saturday - 1 - January".
MyString = MyDate.ToString("yyyy gg")
' In the U.S. English culture, MyString has the value: "2000 A.D.".
DateTime MyDate = new DateTime(2000, 1, 1, 0, 0, 0);
String MyString = MyDate.ToString("dddd - d - MMMM");
// In the U.S. English culture, MyString has the value: 
// "Saturday - 1 - January".
MyString = MyDate.ToString("yyyy gg");
// In the U.S. English culture, MyString has the value: "2000 A.D.".

各カスタム DateTime 書式指定子によって生成される結果を次のコード例に示します。

' This code example demonstrates the result yielded by each custom 
' DateTime format specifier.
Imports System
Imports System.Globalization

Class Sample
    Public Shared Sub Main() 
        Dim formatString As String
        Dim ci As New CultureInfo("")
        Dim msgDTctor As String = "The DateTime constructor for " & _
                                  "January 3, 0001 A.D., 02:09:20.444 P.M. is" & vbLf & _
                                  "    DateTime(0001, 1, 3, 14, 9, 20, 444)" & vbLf
        Dim  thisDate As New DateTime(1, 1, 3, 14, 9, 20, 444)
        Dim   utcDate As New DateTime(0002, 2, 4, 15, 10, 21, 555, DateTimeKind.Utc)
        Dim localDate As New DateTime(0003, 3, 5, 16, 11, 22, 666, DateTimeKind.Local)
        
        ' Custom DateTime format specifiers.
        ' The specifiers are for year, month, day, era, hour, minute, second, fraction of a second, 
        ' A.M./P.M. designator, UTC offset, quoted string (apostrophe), quoted string (quotation mark),
        ' and escape character.
        Dim specifiers As String() =  New String() { _
                                      "%y", "yy", "yyy", "yyyy", "yyyyy", _
                                       "%M", "MM", "MMM", "MMMM", _
                                       "%d", "dd", "ddd", "dddd", _
                                       "%g", "gg", _
                                       "%h", "hh", "%H", "HH", _
                                       "%m", "mm", _
                                       "%s", "ss", _
                                       "%f", "ff", "fff", "ffff", "fffff", "ffffff", "fffffff", _
                                       "%F", "FF", "FFF", "FFFF", "FFFFF", "FFFFFF", "FFFFFFF", _
                                       "%t", "tt", _
                                       "%z", "zz", "zzz", _
                                       "'The year is' yyyy", _
                                       """The year is"" yyyy", _
                                       "\\"}

        Console.Clear()
        Console.WriteLine("The culture is {0}.", ci.DisplayName)
        Console.WriteLine(msgDTctor)
        Console.WriteLine("{0,20} {1}", "Custom format string", "Yields")
        Console.WriteLine("{0,20} {1}", "--------------------", "------")
        Dim format As String
        For Each format In specifiers
            formatString = """" & format & """"
            Console.WriteLine("{0,20} ""{1}""", formatString, thisDate.ToString(format))
        Next format

     Console.WriteLine()
     Console.WriteLine()

' Example of using "K" format specifier.
     Console.WriteLine("Format different kinds of DateTime using ""K""")
     Console.WriteLine("{0, 20} {1}", "DateTimeKind", "Yields")
     Console.WriteLine("{0,20} {1}", "------------", "------")
     Console.WriteLine("{0,20} ""{1}""",  thisDate.Kind,  thisDate.ToString("%K"))
     Console.WriteLine("{0,20} ""{1}""",   utcDate.Kind,   utcDate.ToString("%K"))
     Console.WriteLine("{0,20} ""{1}""", localDate.Kind, localDate.ToString("%K"))
        
    End Sub 'Main
End Class 'Sample

'This code example produces the following results:
'
'The culture is Invariant Language (Invariant Country).
'The DateTime constructor for January 3, 0001 A.D., 02:09:20.444 P.M. is
'    DateTime(0001, 1, 3, 14, 9, 20, 444)
'
'Custom format string Yields
'-------------------- ------
'                "%y" "1"
'                "yy" "01"
'               "yyy" "001"
'              "yyyy" "0001"
'             "yyyyy" "00001"
'                "%M" "1"
'                "MM" "01"
'               "MMM" "Jan"
'              "MMMM" "January"
'                "%d" "3"
'                "dd" "03"
'               "ddd" "Wed"
'              "dddd" "Wednesday"
'                "%g" "A.D."
'                "gg" "A.D."
'                "%h" "2"
'                "hh" "02"
'                "%H" "14"
'                "HH" "14"
'                "%m" "9"
'                "mm" "09"
'                "%s" "20"
'                "ss" "20"
'                "%f" "4"
'                "ff" "44"
'               "fff" "444"
'              "ffff" "4440"
'             "fffff" "44400"
'            "ffffff" "444000"
'           "fffffff" "4440000"
'                "%F" "4"
'                "FF" "44"
'               "FFF" "444"
'              "FFFF" "444"
'             "FFFFF" "444"
'            "FFFFFF" "444"
'           "FFFFFFF" "444"
'                "%t" "P"
'                "tt" "PM"
'                "%z" "-8"
'                "zz" "-08"
'               "zzz" "-08:00"
'"'The year is' yyyy" "The year is 0001"
'""The year is" yyyy" "The year is 0001"
'                "\\" "\"
'
'
'Format different kinds of DateTime using "K"
'        DateTimeKind Yields
'        ------------ ------
'         Unspecified ""
'                 Utc "Z"
'               Local "-08:00"
// This code example demonstrates the result yielded by each custom 
// DateTime format specifier.

using System;
using System.Globalization;

class Sample 
{
    public static void Main() 
    {
    string formatString;
    CultureInfo ci = new CultureInfo("");
    string msgDTctor = "The DateTime constructor for " + 
                       "January 3, 0001 A.D., 02:09:20.444 P.M. is\n" +
                       "    DateTime(0001, 1, 3, 14, 9, 20, 444)\n";
    DateTime thisDate  = new DateTime(0001, 1, 3, 14, 9, 20, 444);  // This is equal to DateTime thisDate  = new DateTime(0001, 1, 3, 14, 9, 20, 444, DateTime.Unspecified)
    DateTime utcDate   = new DateTime(0002, 2, 4, 15, 10, 21, 555, DateTimeKind.Utc);
    DateTime localDate = new DateTime(0003, 3, 5, 16, 11, 22, 666, DateTimeKind.Local);

// Custom DateTime format specifiers
    string[] specifiers = {
// Year
        "%y", 
        "yy", 
        "yyy", 
        "yyyy", 
        "yyyyy", 
// Month
        "%M", 
        "MM", 
        "MMM", 
        "MMMM", 
// Day
        "%d", 
        "dd", 
        "ddd", 
        "dddd",
// Era
        "%g",  
        "gg",  
// Hour
        "%h", 
        "hh", 
        "%H", 
        "HH", 
// Minute
        "%m", 
        "mm", 
// Second
        "%s", 
        "ss", 
// Fraction of a second
        "%f", 
        "ff", 
        "fff", 
        "ffff", 
        "fffff", 
        "ffffff", 
        "fffffff", 
        "%F", 
        "FF", 
        "FFF", 
        "FFFF", 
        "FFFFF", 
        "FFFFFF", 
        "FFFFFFF", 
// A.M./P.M. designator
        "%t", 
        "tt", 
// UTC offset
        "%z", 
        "zz", 
        "zzz", 
// Quoted string (apostrophe)
        "'The year is' yyyy", 
// Quoted string (quotation mark)
        "\"The year is\" yyyy",
// Escape character
        @"\\", 
        };
//
     Console.Clear();
     Console.WriteLine("The culture is {0}.", ci.DisplayName);
     Console.WriteLine(msgDTctor);
     Console.WriteLine("{0,20} {1}", "Custom format string", "Yields");
     Console.WriteLine("{0,20} {1}", "--------------------", "------");
     foreach (string format in specifiers)
         {
         formatString = "\"" + format + "\"";
         Console.WriteLine("{0,20} \"{1}\"", 
                            formatString, thisDate.ToString(format));
         }

     Console.WriteLine();
     Console.WriteLine();

// Example of using "K" format specifier.
     Console.WriteLine("Format different kinds of DateTime using \"K\"");
     Console.WriteLine("{0, 20} {1}", "DateTimeKind", "Yields");
     Console.WriteLine("{0,20} {1}", "------------", "------");
     Console.WriteLine("{0,20} \"{1}\"",  thisDate.Kind,  thisDate.ToString("%K"));
     Console.WriteLine("{0,20} \"{1}\"",   utcDate.Kind,   utcDate.ToString("%K"));
     Console.WriteLine("{0,20} \"{1}\"", localDate.Kind, localDate.ToString("%K"));

    }
}

/*
This code example produces the following results:

The culture is Invariant Language (Invariant Country).
The DateTime constructor for January 3, 0001 A.D., 02:09:20.444 P.M. is
    DateTime(0001, 1, 3, 14, 9, 20, 444)

Custom format string Yields
-------------------- ------
                "%y" "1"
                "yy" "01"
               "yyy" "001"
              "yyyy" "0001"
             "yyyyy" "00001"
                "%M" "1"
                "MM" "01"
               "MMM" "Jan"
              "MMMM" "January"
                "%d" "3"
                "dd" "03"
               "ddd" "Wed"
              "dddd" "Wednesday"
                "%g" "A.D."
                "gg" "A.D."
                "%h" "2"
                "hh" "02"
                "%H" "14"
                "HH" "14"
                "%m" "9"
                "mm" "09"
                "%s" "20"
                "ss" "20"
                "%f" "4"
                "ff" "44"
               "fff" "444"
              "ffff" "4440"
             "fffff" "44400"
            "ffffff" "444000"
           "fffffff" "4440000"
                "%F" "4"
                "FF" "44"
               "FFF" "444"
              "FFFF" "444"
             "FFFFF" "444"
            "FFFFFF" "444"
           "FFFFFFF" "444"
                "%t" "P"
                "tt" "PM"
                "%z" "-8"
                "zz" "-08"
               "zzz" "-08:00"
"'The year is' yyyy" "The year is 0001"
""The year is" yyyy" "The year is 0001"
                "\\" "\"

Format different kinds of DateTime using "K"
        DateTimeKind Yields
        ------------ ------
         Unspecified ""
                 Utc "Z"
               Local "-08:00"                
*/
// This code example demonstrates the result yielded by each custom 
// DateTime format specifier.

using namespace System;
using namespace System::Globalization;

    int main() 
    {
    String^ formatString;
    CultureInfo^ ci = gcnew CultureInfo("");
    String^ msgDTctor = "The DateTime constructor for "  
                       "January 3, 0001 A.D., 02:09:20.444 P.M. is\n" 
                       "    DateTime(0001, 1, 3, 14, 9, 20, 444)\n";
    DateTime^  thisDate = gcnew DateTime(0001, 1, 3, 14, 9, 20, 444);
    DateTime^   utcDate = gcnew DateTime(0002, 2, 4, 15, 10, 21, 555, DateTimeKind::Utc);
    DateTime^ localDate = gcnew DateTime(0003, 3, 5, 16, 11, 22, 666, DateTimeKind::Local);

// Custom DateTime format specifiers
    array<String^>^ specifiers = gcnew array<String^> {
// Year
        "%y", 
        "yy", 
        "yyy", 
        "yyyy", 
        "yyyyy", 
// Month
        "%M", 
        "MM", 
        "MMM", 
        "MMMM", 
// Day
        "%d", 
        "dd", 
        "ddd", 
        "dddd",
// Era
        "%g",  
        "gg",  
// Hour
        "%h", 
        "hh", 
        "%H", 
        "HH", 
// Minute
        "%m", 
        "mm", 
// Second
        "%s", 
        "ss", 
// Fraction of a second
        "%f", 
        "ff", 
        "fff", 
        "ffff", 
        "fffff", 
        "ffffff", 
        "fffffff", 
        "%F", 
        "FF", 
        "FFF", 
        "FFFF", 
        "FFFFF", 
        "FFFFFF", 
        "FFFFFFF", 
// A.M./P.M. designator
        "%t", 
        "tt", 
// UTC offset
        "%z", 
        "zz", 
        "zzz", 
// Quoted string (apostrophe)
        "'The year is' yyyy", 
// Quoted string (quotation mark)
        "\"The year is\" yyyy",
// Escape character
        "\\\\", 
        };
//
     Console::Clear();
     Console::WriteLine("The culture is {0}.", ci->DisplayName);
     Console::WriteLine(msgDTctor);
     Console::WriteLine("{0,20} {1}", "Custom format string", "Yields");
     Console::WriteLine("{0,20} {1}", "--------------------", "------");
     for each (String^ format in specifiers)
         {
         formatString = "\"" + format + "\"";
         Console::WriteLine("{0,20} \"{1}\"", 
                            formatString, thisDate->ToString(format));
         }

     Console::WriteLine();
     Console::WriteLine();

// Example of using "K" format specifier.
     Console::WriteLine("Format different kinds of DateTime using \"K\"");
     Console::WriteLine("{0, 20} {1}", "DateTimeKind", "Yields");
     Console::WriteLine("{0,20} {1}", "------------", "------");
     Console::WriteLine("{0,20} \"{1}\"",  thisDate->Kind,  thisDate->ToString("%K"));
     Console::WriteLine("{0,20} \"{1}\"",   utcDate->Kind,   utcDate->ToString("%K"));
     Console::WriteLine("{0,20} \"{1}\"", localDate->Kind, localDate->ToString("%K"));
     
    }



/*
This code example produces the following results:

The culture is Invariant Language (Invariant Country).
The DateTime constructor for January 3, 0001 A.D., 02:09:20.444 P.M. is
    DateTime(0001, 1, 3, 14, 9, 20, 444)

Custom format string Yields
-------------------- ------
                "%y" "1"
                "yy" "01"
               "yyy" "001"
              "yyyy" "0001"
             "yyyyy" "00001"
                "%M" "1"
                "MM" "01"
               "MMM" "Jan"
              "MMMM" "January"
                "%d" "3"
                "dd" "03"
               "ddd" "Wed"
              "dddd" "Wednesday"
                "%g" "A.D."
                "gg" "A.D."
                "%h" "2"
                "hh" "02"
                "%H" "14"
                "HH" "14"
                "%m" "9"
                "mm" "09"
                "%s" "20"
                "ss" "20"
                "%f" "4"
                "ff" "44"
               "fff" "444"
              "ffff" "4440"
             "fffff" "44400"
            "ffffff" "444000"
           "fffffff" "4440000"
                "%F" "4"
                "FF" "44"
               "FFF" "444"
              "FFFF" "444"
             "FFFFF" "444"
            "FFFFFF" "444"
           "FFFFFFF" "444"
                "%t" "P"
                "tt" "PM"
                "%z" "-8"
                "zz" "-08"
               "zzz" "-08:00"
"'The year is' yyyy" "The year is 0001"
""The year is" yyyy" "The year is 0001"
                "\\" "\"


Format different kinds of DateTime using "K"
        DateTimeKind Yields
        ------------ ------
         Unspecified ""
                 Utc "Z"
               Local "-08:00"
*/

参照

関連項目

System.DateTime
System.IFormatProvider

概念

カスタム DateTime 書式指定文字列の出力例
標準の DateTime 書式指定文字列

その他の技術情報

型の書式設定