展開
.NET Framework 4
標準の日付と時刻の書式指定文字列
このコンテンツは、より高い品質基準を満たすために翻訳者により翻訳されました。このページおよび元の英語コンテンツを同時に表示させるには、[基本設定] をクリックし、表示設定として [クラシック] を選択します。

標準の日時書式指定文字列は、書式設定操作によって生成される日付と時刻の値のテキスト表現を、単一の書式指定子を使用して定義します。空白を含む複数の文字で構成される日時書式指定文字列は、カスタム日時書式指定文字列として解釈されます。詳細については、「カスタムの日付と時刻の書式指定文字列」を参照してください。

メモメモ

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

標準日時書式指定子を次の表に示します。特に明記されない限り、特定の標準日時書式指定子は、DateTime 値で使用しても、DateTimeOffset 値で使用してもまったく同じ文字列形式を生成します。標準の日時書式指定文字列の使用方法については、「メモ」を参照してください。

書式指定子

説明

"d"

短い形式の日付パターン。

詳細については、「短い形式の日付 ("d") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> 6/15/2009 (en-US)

6/15/2009 1:45:30 PM -> 15/06/2009 (fr-FR)

6/15/2009 1:45:30 PM -> 2009/06/15 (ja-JP)

"D"

長い形式の日付パターン。

詳細については、「長い形式の日付 ("D") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> Monday, June 15, 2009 (en-US)

6/15/2009 1:45:30 PM -> 15 июня 2009 г.(ru-RU)

6/15/2009 1:45:30 PM -> Montag, 15.Juni 2009 (de-DE)

"f"

完全な日付と時刻のパターン (短い形式の時刻)。

詳細については、「完全な日付と短い形式の時刻 ("f") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> Monday, June 15, 2009 1:45 PM (en-US)

6/15/2009 1:45:30 PM -> den 15 juni 2009 13:45 (sv-SE)

6/15/2009 1:45:30 PM -> Δευτέρα, 15 Ιουνίου 2009 1:45 μμ (el-GR)

"F"

完全な日付と時刻のパターン (長い形式の時刻)。

詳細については、「完全な日付と長い形式の時刻 ("F") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> Monday, June 15, 2009 1:45:30 PM (en-US)

6/15/2009 1:45:30 PM -> den 15 juni 2009 13:45:30 (sv-SE)

6/15/2009 1:45:30 PM -> Δευτέρα, 15 Ιουνίου 2009 1:45:30 μμ (el-GR)

"g"

一般の日付と時刻のパターン (短い形式の時刻)。

詳細については、「一般の日付と短い形式の時刻 ("g") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> 6/15/2009 1:45 PM (en-US)

6/15/2009 1:45:30 PM -> 15/06/2009 13:45 (es-ES)

6/15/2009 1:45:30 PM -> 2009/6/15 13:45 (zh-CN)

"G"

一般の日付と時刻のパターン (長い形式の時刻)。

詳細については、「一般の日付と長い形式の時刻 ("G") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> 6/15/2009 1:45:30 PM (en-US)

6/15/2009 1:45:30 PM -> 15/06/2009 13:45:30 (es-ES)

6/15/2009 1:45:30 PM -> 2009/6/15 13:45:30 (zh-CN)

"M"、"m"

月日パターン。

詳細については、「月 ("M"、"m") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> June 15 (en-US)

6/15/2009 1:45:30 PM -> 15.juni (da-DK)

6/15/2009 1:45:30 PM -> 15 Juni (id-ID)

"O"、"o"

ラウンドトリップする日付と時刻のパターン。

詳細については、「ラウンドトリップ ("O"、"o") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> 2009-06-15T13:45:30.0900000

"R"、"r"

RFC1123 パターン。

詳細については、「RFC1123 ("R"、"r") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> Mon, 15 Jun 2009 20:45:30 GMT

"s"

並べ替え可能な日付と時刻のパターン。

詳細については、「並べ替え可能な日付と時刻 ("s") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> 2009-06-15T13:45:30

"t"

短い形式の時刻パターン。

詳細については、「短い形式の時刻 ("t") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> 1:45 PM (en-US)

6/15/2009 1:45:30 PM -> 13:45 (hr-HR)

6/15/2009 1:45:30 PM -> 01:45 م (ar-EG)

"T"

長い形式の時刻パターン。

詳細については、「長い形式の時刻 ("T") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> 1:45:30 PM (en-US)

6/15/2009 1:45:30 PM -> 13:45:30 (hr-HR)

6/15/2009 1:45:30 PM -> 01:45:30 م (ar-EG)

"u"

並べ替え可能な日付と時刻のパターン (世界時刻)。

詳細については、「世界共通の並べ替え可能な日付と時刻 ("u") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> 2009-06-15 20:45:30Z

"U"

完全な日付と時刻のパターン (世界時刻)。

詳細については、「世界共通の完全な日付と時刻 ("U") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> Monday, June 15, 2009 8:45:30 PM (en-US)

6/15/2009 1:45:30 PM -> den 15 juni 2009 20:45:30 (sv-SE)

6/15/2009 1:45:30 PM -> Δευτέρα, 15 Ιουνίου 2009 8:45:30 μμ (el-GR)

"Y"、"y"

年月パターン。

詳細については、「年月 ("Y") 書式指定子」を参照してください。

6/15/2009 1:45:30 PM -> June, 2009 (en-US)

6/15/2009 1:45:30 PM -> juni 2009 (da-DK)

6/15/2009 1:45:30 PM -> Juni 2009 (id-ID)

その他の 1 文字

未定義の指定子。

ランタイム FormatException をスローします。

標準書式指定文字列の動作

標準書式指定文字列はカスタム書式指定文字列のエイリアスにすぎません。エイリ���スを使ってカスタム書式指定文字列を表すことの利点は、カスタム書式指定文字列はそれ自体が変化する場合があるのに対し、エイリアスは不変であるという点です。通常、日付と時刻の値の文字列形式はカルチャによって変わるため、この点は重要です。たとえば、"d" 標準書式指定文字列は、日付と時刻の値を短い日付形式のパターンで表示することを意味します。インバリアント カルチャでは、このパターンは "MM/dd/yyyy" になります。fr-FR カルチャでは、これが "dd/MM/yyyy" になります。ja-JP カルチャでは、これが "yyyy/MM/dd" になります。

標準書式指定文字列が特定のカルチャのカスタム書式指定文字列に対応付けられている場合は、使用するカスタム書式指定文字列に該当するカルチャを次のいずれかの方法で定義できます。

  • 既定の (現在の) カルチャを使用できます。次の例では、現在のカルチャの短い日付形式を使って日付を表示します。この場合、現在のカルチャは en-US です。

    
    ' Display using current (en-us) culture's short date format
    Dim thisDate As Date = #03/15/2008#
    Console.WriteLine(thisDate.ToString("d"))     ' Displays 3/15/2008
    
    
    
  • 使用する書式のカルチャを表す CultureInfo オブジェクトを、IFormatProvider パラメーターを持つメソッドに渡すことができます。次の例では、pt-BR カルチャの短い日付形式を使って日付を表示します。

    
    ' Display using pt-BR culture's short date format
    Dim thisDate As Date = #03/15/2008#
    Dim culture As New CultureInfo("pt-BR")      
    Console.WriteLine(thisDate.ToString("d", culture))   ' Displays 15/3/2008
    
    
    
  • 書式情報を提供する DateTimeFormatInfo オブジェクトを、IFormatProvider パラメーターを持つメソッドに渡すことができます。次の例では、hr-HR カルチャの DateTimeFormatInfo オブジェクトに基づく短い日付形式で日付を表示します。

    
    ' Display using date format information from hr-HR culture
    Dim thisDate As Date = #03/15/2008#
    Dim fmt As DateTimeFormatInfo = (New CultureInfo("hr-HR")).DateTimeFormat
    Console.WriteLine(thisDate.ToString("d", fmt))   ' Displays 15.3.2008
    
    
    

標準書式指定文字列には、長いカスタム書式指定文字列に代わる、不変の省略形としての利用価値もあります。このカテゴリに該当する標準書式指定文字列は、"O" (または "o")、"R" (または "r")、"s"、"u" の 4 つです。これらの文字列は、インバリアント カルチャで定義されたカスタム書式指定文字列に対応します。これらの書式指定文字列によって生成される日時値の文字列形式は、カルチャに関係なく一定です。次の表で、この 4 つの標準日時書式指定文字列について説明します。

標準書式指定文字列

DateTimeFormatInfo.InvariantInfo プロパティによる定義

カスタム書式指定文字列

"O" または "o"

なし

yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzz

"R" または "r"

RFC1123Pattern

ddd, dd MMM yyyy HH':'mm':'ss 'GMT'

"s"

SortableDateTimePattern

yyyy'-'MM'-'dd'T'HH':'mm':'ss

"u"

UniversalSortableDateTimePattern

yyyy'-'MM'-'dd HH':'mm':'ss'Z'

以降では、DateTime 値および DateTimeOffset 値の標準書式指定子について説明します。

短い形式の日付 ("d") 書式指定子

"d" 標準書式指定子は、特定のカルチャの DateTimeFormatInfo.ShortDatePattern プロパティで定義されるカスタム日時書式指定文字列を表します。たとえば、インバリアント カルチャの ShortDatePattern プロパティによって返されるカスタム書式指定文字列は "MM/dd/yyyy" です。

返される文字列の書式を制御する DateTimeFormatInfo オブジェクト プロパティの一覧を次の表に示します。

プロパティ

説明

ShortDatePattern

結果文字列の全体的な書式を定義します。

DateSeparator

日付の構成要素、つまり年、月、および日を区切る文字列を定義します。

次の例では、"d" 書式指定子を使用して、日付と時刻の値を表示します。


Dim date1 As Date = #4/10/2008#
Console.WriteLine(date1.ToString("d", DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008
Console.WriteLine(date1.ToString("d", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays 4/10/2008                       
Console.WriteLine(date1.ToString("d", _
                  CultureInfo.CreateSpecificCulture("en-NZ")))
' Displays 10/04/2008                       
Console.WriteLine(date1.ToString("d", _
                  CultureInfo.CreateSpecificCulture("de-DE")))
' Displays 10.04.2008                       


表のトップへ

長い形式の日付 ("D") 書式指定子

"D" 標準書式指定子は、現在の DateTimeFormatInfo.LongDatePattern プロパティで定義されるカスタム日時書式指定文字列を表します。たとえば、インバリアント カルチャのカスタム書式指定文字列は "dddd, dd MMMM yyyy" です。

返される文字列の書式を制御する DateTimeFormatInfo オブジェクト プロパティの一覧を次の表に示します。

プロパティ

説明

LongDatePattern

結果文字列の全体的な書式を定義します。

DayNames

結果文字列に含まれるローカライズされた日付の名前を定義します。

MonthNames

結果文字列に含まれるローカライズされた月の名前を定義します。

次の例では、"D" 書式指定子を使用して、日付と時刻の値を表示します。


Dim date1 As Date = #4/10/2008#
Console.WriteLine(date1.ToString("D", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008                        
Console.WriteLine(date1.ToString("D", _
                  CultureInfo.CreateSpecificCulture("pt-BR")))
' Displays quinta-feira, 10 de abril de 2008                        
Console.WriteLine(date1.ToString("D", _
                  CultureInfo.CreateSpecificCulture("es-MX")))
' Displays jueves, 10 de abril de 2008                        


表のトップへ

完全な日付と短い形式の時刻 ("f") 書式指定子

"f" 標準書式指定子は、長い形式の日付 ("D") パターンと短い形式の時刻 ("t") パターンを空白で区切って組み合わせて表します。

結果文字列は、特定の DateTimeFormatInfo オブジェクトの書式情報に影響されます。返される文字列の書式を制御できる DateTimeFormatInfo オブジェクト プロパティの一覧を次の表に示します。一部のカルチャの DateTimeFormatInfo.LongDatePattern プロパティおよび DateTimeFormatInfo.ShortTimePattern プロパティによって返されるカスタム書式指定子では、一部のプロパティが使用されない場合があります。

プロパティ

説明

LongDatePattern

結果文字列の日付要素の書式を定義します。

ShortTimePattern

結果文字列の時刻要素の書式を定義します。

DayNames

��果文字列に含まれるローカライズされた日付の名前を定義します。

MonthNames

結果文字列に含まれるローカライズされた月の名前を定義します。

TimeSeparator

時刻の構成要素、つまり時間、分、および秒を区切る文字列を定義します。

AMDesignator

午前 0 時から正午前までの時刻を 12 時間形式で示す文字列を定義します。

PMDesignator

正午から午前 0 時前までの時刻を 12 時間形式で示す文字列を定義します。

次の例では、"f" 書式指定子を使用して、日付と時刻の値を表示します。


Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("f", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 6:30 AM                        
Console.WriteLine(date1.ToString("f", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays jeudi 10 avril 2008 06:30                       


表のトップへ

完全な日付と長い形式の時刻 ("F") 書式指定子

"F" 標準書式指定子は、現在の DateTimeFormatInfo.FullDateTimePattern プロパティで定義されるカスタム日時書式指定文字列を表します。たとえば、インバリアント カルチャのカスタム書式指定文字列は "dddd, dd MMMM yyyy HH:mm:ss" です。

返される文字列の書式を制御できる DateTimeFormatInfo オブジェクト プロパティの一覧を次の表に示します。一部のカルチャの FullDateTimePattern プロパティによって返されるカスタム書式指定子では、一部のプロパティが使用されない場合があります。

プロパティ

説明

FullDateTimePattern

結果文字列の全体的な書式を定義します。

DayNames

結果文字列に含まれるローカライズされた日付の名前を定義します。

MonthNames

結果文字列に含まれるローカライズされた月の名前を定義します。

TimeSeparator

時刻の構成要素、つまり時間、分、および秒を区切る文字列を定義します。

AMDesignator

午前 0 時から正午前までの時刻を 12 時間形式で示す文字列を定義します。

PMDesignator

正午から午前 0 時前までの時刻を 12 時間形式で示す文字列を定義します。

次の例では、"F" 書式指定子を使用して、日付と時刻の値を表示します。


Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("F", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 6:30:00 AM                        
Console.WriteLine(date1.ToString("F", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays jeudi 10 avril 2008 06:30:00                       


表のトップへ

一般の日付と短い形式の時刻 ("g") 書式指定子

"g" 標準書式指定子は、短い形式の日付 ("d") パターンと短い形式の時刻 ("t") パターンを空白で区切って組み合わせて表します。

結果文字列は、特定の DateTimeFormatInfo オブジェクトの書式情報に影響されます。返される文字列の書式を制御できる DateTimeFormatInfo オブジェクト プロパティの一覧を次の表に示します。一部のカルチャの DateTimeFormatInfo.ShortDatePattern プロパティおよび DateTimeFormatInfo.ShortTimePattern プロパティによって返されるカスタム書式指定子では、一部のプロパティが使用されない場合があります。

プロパティ

説明

ShortDatePattern

���果文字列の日付要素の書式を定義します。

ShortTimePattern

結果文字列の時刻要素の書式を定義します。

DateSeparator

日付の構成要素、つまり年、月、および日を区切る文字列を定義します。

TimeSeparator

時刻の構成要素、つまり時間、分、および秒を区切る文字列を定義します。

AMDesignator

午前 0 時から正午前までの時刻を 12 時間形式で示す文字列を定義します。

PMDesignator

正午から午前 0 時前までの時刻を 12 時間形式で示す文字列を定義します。

次の例では、"g" 書式指定子を使用して、日付と時刻の値を表示します。


Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("g", _
                  DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008 06:30                      
Console.WriteLine(date1.ToString("g", _
                  CultureInfo.CreateSpecificCulture("en-us")))
' Displays 4/10/2008 6:30 AM                       
Console.WriteLine(date1.ToString("g", _
                  CultureInfo.CreateSpecificCulture("fr-BE")))
' Displays 10/04/2008 6:30                        


表のトップへ

一般の日付と長い形式の時刻 ("G") 書式指定子

"G" 標準書式指定子は、短い形式の日付 ("d") パターンと長い形式の時刻 ("T") パターンを空白で区切って組み合わせて表します。

結果文字列は、特定の DateTimeFormatInfo オブジェクトの書式情報に影響されます。返される文字列の書式を制御できる DateTimeFormatInfo オブジェクト プロパティの一覧を次の表に示します。一部のカルチャの DateTimeFormatInfo.ShortDatePattern プロパティおよび DateTimeFormatInfo.LongTimePattern プロパティによって返されるカスタム書式指定子では、一部のプロパティが使用されない場合があります。

プロパティ

説明

ShortDatePattern

結果文字列の日付要素の書式を定義します。

LongTimePattern

結果文字列の時刻要素の書式を定義します。

DateSeparator

日付の構成要素、つまり年、月、および日を区切る文字列を定義します。

TimeSeparator

時刻の構成要素、つまり時間、分、および秒を区切る文字列を定義します。

AMDesignator

午前 0 時から正午前までの時刻を 12 時間形式で示す文字列を定義します。

PMDesignator

正午から午前 0 時前までの時刻を 12 時間形式で示す文字列を定義します。

次の例では、"G" 書式指定子を使用して、日付と時刻の値を表示します。


Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("G", _
                  DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008 06:30:00
Console.WriteLine(date1.ToString("G", _
                  CultureInfo.CreateSpecificCulture("en-us")))
' Displays 4/10/2008 6:30:00 AM                        
Console.WriteLine(date1.ToString("G", _
                  CultureInfo.CreateSpecificCulture("nl-BE")))
' Displays 10/04/2008 6:30:00                       


表のトップへ

月 ("M"、"m") 書式指定子

"M" または "m" 標準書式指定子は、現在の DateTimeFormatInfo.MonthDayPattern プロパティで定義されるカスタム日時書式指定文字列を表します。たとえば、インバリアント カルチャのカスタム書式指定文字列は "MMMM dd" です。

返される文字列の書式を制御する DateTimeFormatInfo オブジェクト プロパティの一覧を次の表に示します。

プロパティ

説明

MonthDayPattern

結果文字列の全体的な書式を定義します。

MonthNames

結果文字列に含まれるローカライズされた月の名前を定義します。

次の例では、"m" 書式指定子を使用して、日付と時刻の値を表示します。


Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("m", _
                  CultureInfo.CreateSpecificCulture("en-us")))
' Displays April 10                        
Console.WriteLine(date1.ToString("m", _
                  CultureInfo.CreateSpecificCulture("ms-MY")))
' Displays 10 April                       


表のトップへ

ラウンドトリップ ("O"、"o") 書式指定子

"O" または "o" 標準書式指定子は、タイム ゾーン情報を保持するパターンを使用するカスタム日時書式指定文字列を表します。この書式指定子は、DateTime 値の日付と時刻の値を、DateTime.Kind プロパティと共にテキストとして保持できるように設計されています。styles パラメーターが DateTimeStyles.RoundtripKind に設定されている場合は、DateTime.Parse(String, IFormatProvider, DateTimeStyles) メソッドまたは DateTime.ParseExact メソッドを使用して、書式設定された文字列を変換前の文字列に戻すことができます。

"O" または "o" 標準書式指定子は、DateTime 値の "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK" カスタム書式指定文字列と DateTimeOffset 値の "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzzz" カスタム書式指定文字列に対応します。この文字列の中で、個々の文字 (ハイフン、コロン、アルファベットの "T" など) を区切る一対の単一引用符は、各文字がリテラルであって変更できないことを示します。アポストロフィは、出力された文字列には現れません。

この指定子のパターンは、定義済みの標準 (ISO 8601) を反映します。したがって、使用されるカルチャまたは指定された書式プロバイダーに関係なく、常に同じです。Parse メソッドまたは ParseExact メソッドに渡す文字列は、このカスタム書式パターンと完全に一致していることが必要です。一致していない場合は、FormatException がスローされます。

この標準書式指定子を使用した場合、書式設定操作または解析操作で常にインバリアント カルチャが使用されます。

次の例では、米国太平洋標準時ゾーンのシステム上で "o" 書式指定子を使用し、DateTime 値および DateTimeOffset 値を表示します


Dim date1 As Date = #4/10/2008 6:30AM#
Dim dateOffset As New DateTimeOffset(date1, TimeZoneInfo.Local.GetUtcOFfset(date1))
Console.WriteLine(date1.ToString("o"))
' Displays 2008-04-10T06:30:00.0000000                        
Console.WriteLine(dateOffset.ToString("o"))
' Displays 2008-04-10T06:30:00.0000000-07:00                       


次の例では、"o" 書式指定子を使用して書式設定された文字列を作成し、日付および時刻の Parse メソッドを呼び出して元の日時値を復元します。


' Round-trip DateTime values.
Dim originalDate, newDate As Date
Dim dateString As String
' Round-trip a local time.
originalDate = Date.SpecifyKind(#4/10/2008 6:30AM#, DateTimeKind.Local)
dateString = originalDate.ToString("o")
newDate = Date.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind, _
                  newDate, newDate.Kind)
' Round-trip a UTC time.
originalDate = Date.SpecifyKind(#4/12/2008 9:30AM#, DateTimeKind.Utc)                  
dateString = originalDate.ToString("o")
newDate = Date.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind, _
                  newDate, newDate.Kind)
' Round-trip time in an unspecified time zone.
originalDate = Date.SpecifyKind(#4/13/2008 12:30PM#, DateTimeKind.Unspecified)                  
dateString = originalDate.ToString("o")
newDate = Date.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind, _
                  newDate, newDate.Kind)

' Round-trip a DateTimeOffset value.
Dim originalDTO As New DateTimeOffset(#4/12/2008 9:30AM#, New TimeSpan(-8, 0, 0))
dateString = originalDTO.ToString("o")
Dim newDTO As DateTimeOffset = DateTimeOffset.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} to {1}.", originalDTO, newDTO)
' The example displays the following output:
'    Round-tripped 4/10/2008 6:30:00 AM Local to 4/10/2008 6:30:00 AM Local.
'    Round-tripped 4/12/2008 9:30:00 AM Utc to 4/12/2008 9:30:00 AM Utc.
'    Round-tripped 4/13/2008 12:30:00 PM Unspecified to 4/13/2008 12:30:00 PM Unspecified.
'    Round-tripped 4/12/2008 9:30:00 AM -08:00 to 4/12/2008 9:30:00 AM -08:00.


表のトップへ

RFC1123 ("R"、"r") 書式指定子

"R" または "r" 標準書式指定子は、DateTimeFormatInfo.RFC1123Pattern プロパティで定義されるカスタム日時書式指定文字列を表します。このパターンは定義済みの標準を反映し、プロパティは読み取り専用です。したがって、使用されるカルチャまたは指定された書式プロバイダーに関係なく、常に同じです。カスタム書式指定文字列は、"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'" です。この標準書式指定子を使用した場合、書式設定操作または解析操作で常にインバリアント カルチャが使用されます。

結果文字列は、インバリアント カルチャを表す DateTimeFormatInfo.InvariantInfo プロパティによって返される DateTimeFormatInfo オブジェクトの次のプロパティに影響されます。

プロパティ

説明

RFC1123Pattern

結果文字列の書式を定義します。

AbbreviatedDayNames

結果文字列に含まれる日付の省略名を定義します。

AbbreviatedMonthNames

結果文字列に含まれる月の省略名を定義します。

RFC 1123 標準では、時刻は世界協定時刻 (UTC: Coordinated Universal Time) で表されますが、書式設定操作では、書式設定される DateTime オブジェクトまたは DateTimeOffset オブジェクトの値は変更されません。このため、アプリケーションでは、書式設定操作を実行する前に、日時値を UTC に変換する必要があります。この変換を実行するには、DateTime 値で DateTime.ToUniversalTime メソッドを、DateTimeOffset 値で ToUniversalTime メソッドを呼び出します。

次の例では、米国太平洋標準時ゾーンのシステム上で "r" 書式指定子を使用し、DateTime 値および DateTimeOffset 値を表示します


Dim date1 As Date = #4/10/2008 6:30AM#
Dim dateOffset As New DateTimeOffset(date1, TimeZoneInfo.Local.GetUtcOFfset(date1))
Console.WriteLine(date1.ToUniversalTime.ToString("r"))
' Displays Thu, 10 Apr 2008 13:30:00 GMT                       
Console.WriteLine(dateOffset.ToUniversalTime.ToString("r"))
' Displays Thu, 10 Apr 2008 13:30:00 GMT                        


表のトップへ

並べ替え可能な日付と時刻 ("s") 書式指定子

"s" 標準書式指定子は、DateTimeFormatInfo.SortableDateTimePattern プロパティで定義されるカスタム日時書式指定文字列を表します。このパターンは定義済みの標準 (ISO 8601) を反映し、プロパティは読み取り専用です。したがって、使用されるカルチャまたは指定された書式プロバイダーに関係なく、常に同じです。カスタム書式指定文字列は、"yyyy'-'MM'-'dd'T'HH':'mm':'ss" です。

この標準書式指定子を使用した場合、書式設定操作または解析操作で常にインバリアント カルチャが使用されます。

次の例では、米国太平洋標準時ゾーンのシステム上で "s" 書式指定子を使用し、DateTime 値および DateTimeOffset 値を表示します


Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("s"))
' Displays 2008-04-10T06:30:00                       


表のトップへ

短い形式の時刻 ("t") 書式指定子

"t" 標準書式指定子は、現在の DateTimeFormatInfo.ShortTimePattern プロパティで定義されるカスタム日時書式指定文字列を表します。たとえば、インバリアント カルチャのカスタム書式指定文字列は "HH:mm" です。

結果文字列は、特定の DateTimeFormatInfo オブ��ェクトの書式情報に影響されます。返される文字列の書式を制御できる DateTimeFormatInfo オブジェクト プロパティの一覧を次の表に示します。一部のカルチャの DateTimeFormatInfo.ShortTimePattern プロパティによって返されるカスタム書式指定子では、一部のプロパティが使用されない場合があります。

プロパティ

説明

ShortTimePattern

結果文字列の時刻要素の書式を定義します。

TimeSeparator

時刻の構成要素、つまり時間、分、および秒を区切る文字列を定義します。

AMDesignator

午前 0 時から正午前までの時刻を 12 時間形式で示す文字列を定義します。

PMDesignator

正午から午前 0 時前までの時刻を 12 時間形式で示す文字列を定義します。

次の例では、"t" 書式指定子を使用して、日付と時刻の値を表示します。


Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("t", _
                  CultureInfo.CreateSpecificCulture("en-us")))
' Displays 6:30 AM                        
Console.WriteLine(date1.ToString("t", _
                  CultureInfo.CreateSpecificCulture("es-ES")))
' Displays 6:30                      


表のトップへ

長い形式の時刻 ("T") 書式指定子

"T" 標準書式指定子は、特定のカルチャの DateTimeFormatInfo.LongTimePattern プロパティで定義されるカスタム日時書式指定文字列を表します。たとえば、インバリアント カルチャのカスタム書式指定文字列は "HH:mm:ss" です。

返される文字列の書式を制御できる DateTimeFormatInfo オブジェクト プロパティの一覧を次の表に示します。一部のカルチャの DateTimeFormatInfo.LongTimePattern プロパティによって返されるカスタム書式指定子では、一部のプロパティが使用されない場合があります。

プロパティ

説明

LongTimePattern

結果文字列の時刻要素の書式を定義します。

TimeSeparator

時刻の構成要素、つまり時間、分、および秒を区切る文字列を定義します。

AMDesignator

午前 0 時から正午前までの時刻を 12 時間形式で示す文字列を定義します。

PMDesignator

正午から午前 0 時前までの時刻を 12 時間形式で示す文字列を定義します。

次の例では、"T" 書式指定子を使用して、日付と時刻の値を表示します。


Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("T", _
                  CultureInfo.CreateSpecificCulture("en-us")))
' Displays 6:30:00 AM                       
Console.WriteLine(date1.ToString("T", _
                  CultureInfo.CreateSpecificCulture("es-ES")))
' Displays 6:30:00                      


表のトップへ

世界共通の並べ替え可能な日付と時刻 ("u") 書式指定子

"u" 標準書式指定子は、DateTimeFormatInfo.UniversalSortableDateTimePattern プロパティで定義されるカスタム日時書式指定文字列を表します。このパターンは定義済みの標準を反映し、プロパティは読み取り専用です。したがって、使用されるカルチャまたは指定された書式プロバイダーに関係なく、常に同じです。カスタム書式指定文字列は、"yyyy'-'MM'-'dd HH':'mm':'ss'Z'" です。この標準書式指定子を使用した場合、書式設定操作または解析操作で常にインバリアント カルチャが使用されます。

結果文字列では、時刻は世界協定時刻 (UTC) で表される必要がありますが、書式設定操作では、元の DateTime 値または DateTimeOffset 値の変換は実行されません。このため、アプリケーションでは、書式設定操作を実行する前に、日時値を UTC に変換する必要があります。この変換を実行するには、DateTime 値で DateTime.ToUniversalTime メソッドを、DateTimeOffset 値で ToUniversalTime メソッドを呼び出します。

次の例では、"u" 書式指定子を使用して、日付と時刻の値を表示します。


Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToUniversalTime.ToString("u"))
' Displays 2008-04-10 13:30:00Z                       


表のトップへ

世界共通の完全な日付と時刻 ("U") 書式指定子

"U" 標準書式指定子は、特定のカルチャの DateTimeFormatInfo.FullDateTimePattern プロパティで定義されるカスタム日時書式指定文字列を表します。このパターンは、"F" パターンと同じです。ただし、DateTime 値は、書式設定される前に、自動的に UTC に変換されます。

返される文字列の書式を制御できる DateTimeFormatInfo オブジェクト プロパティの一覧を次の表に示します。一部のカルチャの FullDateTimePattern プロパティによって返されるカスタム書式指定子では、一部のプロパティが使用されない場合があります。

プロパティ

説明

FullDateTimePattern

結果文字列の全体的な書式を定義します。

DayNames

結果文字列に含まれるローカライズされた日付の名前を定義します。

MonthNames

結果文字列に含まれるローカライズされた月の名前を定義します。

TimeSeparator

時刻の構成要素、つまり時間、分、および秒を区切る文字列を定義します。

AMDesignator

午前 0 時から正午前までの時刻を 12 時間形式で示す文字列を定義します。

PMDesignator

正午から午前 0 時前までの時刻を 12 時間形式で示す文字列を定義します。

"U" 書式指定子は、DateTimeOffset 型ではサポートされません。この書式指定子を使って DateTimeOffset 値の書式を設定しようとすると、FormatException がスローされます。

次の例では、"U" 書式指定子を使用して、日付と時刻の値を表示します。


Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("U", CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 1:30:00 PM                       
Console.WriteLine(date1.ToString("U", CultureInfo.CreateSpecificCulture("sv-FI")))
' Displays den 10 april 2008 13:30:00                       


表のトップへ

年月 ("Y"、"y") 書式指定子

"Y" または "y" 標準書式指定子は、特定のカルチャの DateTimeFormatInfo.YearMonthPattern プロパティで定義されるカスタム日時書式指定文字列を表します。たとえば、インバリアント カルチャのカスタム書式指定文字列は "yyyy MMMM" です。

返される文字列の書式を制御する DateTimeFormatInfo オブジェクト プロパティの一覧を次の表に示します。

プロパティ

説明

YearMonthPattern

結果文字列の全体的な書式を定義します。

MonthNames

結果文字列に含まれるローカライズされた月の名前を定義します。

次の例では、"y" 書式指定子を使用して、日付と時刻の値を表示します。


Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("Y", CultureInfo.CreateSpecificCulture("en-US")))
' Displays April, 2008                       
Console.WriteLine(date1.ToString("y", CultureInfo.CreateSpecificCulture("af-ZA")))
' Displays April 2008                       


表のトップへ

メモ

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

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

また、CultureInfo.CultureInfo(String) コンストラクターを使用して、現在のシステム カルチャと同じカルチャを表す新しい CultureInfo オブジェクトをインスタンス化した場合、コントロール パネルの [地域と言語のオプション] 項目で設定されたカスタマイズが新しい CultureInfo オブジェクトに適用されます。CultureInfo.CultureInfo(String, Boolean) コンストラクターを使用すると、システムに対するカスタマイズが反映されない CultureInfo オブジェクトを作成できます。

DateTimeFormatInfo のプロパティ

書式設定は、現在の DateTimeFormatInfo オブジェクトのプロパティの影響を受けます。このオブジェクトは、現在のスレッド カルチャによって暗黙的に指定されるか、または書式設定を実行するメソッドの IFormatProvider パラメーターによって明示的に指定されます。IFormatProvider パラメーターには、カルチャを表す CultureInfo オブジェクトを指定するか、特定のカルチャの日時書式設定規則を表す DateTimeFormatInfo オブジェクトを指定する必要があります。標準日時書式指定子の多くは、現在の DateTimeFormatInfo オブジェクトのプロパティによって定義されている書式設定パターンのエイリアスです。標準日時書式指定子によって生成される結果は、対応する DateTimeFormatInfo プロパティの、対応する日時形式パターンを変更することによって変えることができます。

コミュニティ コンテンツ追加
注釈
Page view tracker