カスタム日時書式指定文字列Custom Date and Time Format Strings

日時書式指定文字列は、DateTime 値または DateTimeOffset 値の書式設定操作によって生成されるテキスト表現を定義します。A date and time format string defines the text representation of a DateTime or DateTimeOffset value that results from a formatting operation . また、文字列を日時に正常に変換するために解析操作で必要となる日時値の表現も定義します。It can also define the representation of a date and time value that is required in a parsing operation in order to successfully convert the string to a date and time. カスタム書式指定文字列は、1 つ以上のカスタム日時書式指定子で構成されます。A custom format string consists of one or more custom date and time format specifiers. 標準の日時書式指定文字列以外の文字列は、すべてカスタム日時書式指定文字列として解釈されます。Any string that is not a standard date and time format string is interpreted as a custom date and time format string.

ヒント

書式設定ユーティリティをダウンロードできます。このアプリケーションを使用すると、書式指定文字列を日付と時刻の値または数値に適用して、結果の文字列を表示できます。You can download the Formatting Utility, an application that enables you to apply format strings to either date and time or numeric values and displays the result string.

カスタム日時書式指定文字列は、DateTime 値で使用することも、DateTimeOffset 値で使用することもできます。Custom date and time format strings can be used with both DateTime and DateTimeOffset values.

注意

この記事の C# 例は、Try.NET インライン コード ランナーとプレイグラウンドで実行されます。The C# examples in this article run in the Try.NET inline code runner and playground. [実行] ボタンを選択すると、対話型ウィンドウで例が実行されます。Select the Run button to run an example in an interactive window. コードを実行したら、コードを変更し、[実行] をもう一度選択して変更後のコードを実行できます。Once you execute the code, you can modify it and run the modified code by selecting Run again. 変更後のコードが対話型ウィンドウで実行されるか、コンパイルできなかった場合、対話型ウィンドウにすべての C# コンパイラ エラー メッセージが表示されます。The modified code either runs in the interactive window or, if compilation fails, the interactive window displays all C# compiler error messages.

Try.NET インライン コード ランナーとプレイグラウンドのローカル タイム ゾーンは、協定世界時 (UTC) です。The local time zone of the Try.NET inline code runner and playground is Coordinated Universal Time, or UTC. これは、DateTimeDateTimeOffsetTimeZoneInfo 型とそのメンバーについて説明する例の、動作と出力に影響を与える可能性があります。This may affect the behavior and the output of examples that illustrate the DateTime, DateTimeOffset, and TimeZoneInfo types and their members.

書式設定操作では、日時インスタンスの ToString メソッドまたは複合書式指定をサポートするメソッドで、カスタム日時書式指定文字列を使用できます。In formatting operations, custom date and time format strings can be used either with the ToString method of a date and time instance or with a method that supports composite formatting. 両方の使用例を次に示します。The following example illustrates both uses.

DateTime thisDate1 = new DateTime(2011, 6, 10);
Console.WriteLine("Today is " + thisDate1.ToString("MMMM dd, yyyy") + ".");
 
DateTimeOffset thisDate2 = new DateTimeOffset(2011, 6, 10, 15, 24, 16, 
                                              TimeSpan.Zero);
Console.WriteLine("The current date and time: {0:MM/dd/yy H:mm:ss zzz}", 
                   thisDate2); 
// The example displays the following output:
//    Today is June 10, 2011.
//    The current date and time: 06/10/11 15:24:16 +00:00
 Dim thisDate1 As Date = #6/10/2011#
 Console.WriteLine("Today is " + thisDate1.ToString("MMMM dd, yyyy") + ".")
 
 Dim thisDate2 As New DateTimeOffset(2011, 6, 10, 15, 24, 16, TimeSpan.Zero)
 Console.WriteLine("The current date and time: {0:MM/dd/yy H:mm:ss zzz}", 
                   thisDate2) 
 ' The example displays the following output:
'    Today is June 10, 2011.
'    The current date and time: 06/10/11 15:24:16 +00:00

解析操作では、DateTime.ParseExactDateTime.TryParseExactDateTimeOffset.ParseExact、および DateTimeOffset.TryParseExact の各メソッドで、カスタム日時書式指定文字列を使用できます。In parsing operations, custom date and time format strings can be used with the DateTime.ParseExact, DateTime.TryParseExact, DateTimeOffset.ParseExact, and DateTimeOffset.TryParseExact methods. これらのメソッドでは、解析操作が成功するための特定のパターンに入力文字列が完全に一致している必要があります。These methods require that an input string conform exactly to a particular pattern for the parse operation to succeed. 日付に日、月、2 桁の年が含まれているかどうかを解析する DateTimeOffset.ParseExact(String, String, IFormatProvider) メソッドを呼び出す例を次に示します。The following example illustrates a call to the DateTimeOffset.ParseExact(String, String, IFormatProvider) method to parse a date that must include a day, a month, and a two-digit year.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] dateValues = { "30-12-2011", "12-30-2011", 
                              "30-12-11", "12-30-11" };
      string pattern = "MM-dd-yy";
      DateTime parsedDate;
      
      foreach (var dateValue in dateValues) {
         if (DateTime.TryParseExact(dateValue, pattern, null, 
                                   DateTimeStyles.None, out parsedDate))
            Console.WriteLine("Converted '{0}' to {1:d}.", 
                              dateValue, parsedDate);
         else
            Console.WriteLine("Unable to convert '{0}' to a date and time.", 
                              dateValue);
      }
   }
}
// The example displays the following output:
//    Unable to convert '30-12-2011' to a date and time.
//    Unable to convert '12-30-2011' to a date and time.
//    Unable to convert '30-12-11' to a date and time.
//    Converted '12-30-11' to 12/30/2011.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim dateValues() As String = { "30-12-2011", "12-30-2011", 
                                      "30-12-11", "12-30-11" }
      Dim pattern As String = "MM-dd-yy"
      Dim parsedDate As Date
      
      For Each dateValue As String In dateValues
         If DateTime.TryParseExact(dateValue, pattern, Nothing, 
                                   DateTimeStyles.None, parsedDate) Then
            Console.WriteLine("Converted '{0}' to {1:d}.", 
                              dateValue, parsedDate)
         Else
            Console.WriteLine("Unable to convert '{0}' to a date and time.", 
                              dateValue)
         End If                                                         
      Next
   End Sub
End Module
' The example displays the following output:
'    Unable to convert '30-12-2011' to a date and time.
'    Unable to convert '12-30-2011' to a date and time.
'    Unable to convert '30-12-11' to a date and time.
'    Converted '12-30-11' to 12/30/2011.

次の表に、カスタム日時書式指定子の説明および書式指定子ごとの書式設定後の文字列を示します。The following table describes the custom date and time format specifiers and displays a result string produced by each format specifier. 既定では、結果の文字列は、en-US カルチャの書式指定規則を反映します。By default, result strings reflect the formatting conventions of the en-US culture. 特定の書式指定子でローカライズされた文字列が書式設定後に生成される場合、例には書式設定後の文字列が適用されるカルチャも示されます。If a particular format specifier produces a localized result string, the example also notes the culture to which the result string applies. カスタム日時書式指定文字列の使用方法については、「メモ」を参照してください。See the Notes section for additional information about using custom date and time format strings.

書式指定子Format specifier 説明Description 使用例Examples
"d""d" 月の日にち (1 ~ 31)。The day of the month, from 1 through 31.

詳細については、「"d" カスタム書式指定子」を参照してください。More information: The "d" Custom Format Specifier.
2009-06-01T13:45:30 -> 12009-06-01T13:45:30 -> 1

2009-06-15T13:45:30 -> 152009-06-15T13:45:30 -> 15
"dd""dd" 月の日にち (01 ~ 31)。The day of the month, from 01 through 31.

詳細については、「"dd" カスタム書式指定子」を参照してください。More information: The "dd" Custom Format Specifier.
2009-06-01T13:45:30 -> 012009-06-01T13:45:30 -> 01

2009-06-15T13:45:30 -> 152009-06-15T13:45:30 -> 15
"ddd""ddd" 曜日の省略名。The abbreviated name of the day of the week.

詳細については、「"ddd" カスタム書式指定子」を参照してください。More information: The "ddd" Custom Format Specifier.
2009-06-15T13:45:30 -> Mon (en-US)2009-06-15T13:45:30 -> Mon (en-US)

2009-06-15T13:45:30 -> Пн (ru-RU)2009-06-15T13:45:30 -> Пн (ru-RU)

2009-06-15T13:45:30 -> lun.2009-06-15T13:45:30 -> lun. (fr-FR)(fr-FR)
"dddd""dddd" 曜日の完全名。The full name of the day of the week.

詳細については、「"dddd" カスタム書式指定子」を参照してください。More information: The "dddd" Custom Format Specifier.
2009-06-15T13:45:30 -> Monday (en-US)2009-06-15T13:45:30 -> Monday (en-US)

2009-06-15T13:45:30 -> понедельник (ru-RU)2009-06-15T13:45:30 -> понедельник (ru-RU)

2009-06-15T13:45:30 -> lundi (fr-FR)2009-06-15T13:45:30 -> lundi (fr-FR)
"f""f" 日時値の秒部分の 1/10。The tenths of a second in a date and time value.

詳細については、「"f" カスタム書式指定子」を参照してください。More information: The "f" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 62009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.05 -> 02009-06-15T13:45:30.05 -> 0
"ff""ff" 日時値の秒部分の 1/100。The hundredths of a second in a date and time value.

詳細については、「"ff" カスタム書式指定子」を参照してください。More information: The "ff" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 612009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> 002009-06-15T13:45:30.0050000 -> 00
"fff""fff" 日時値の秒部分の 1/1000。The milliseconds in a date and time value.

詳細については、「"fff" カスタム書式指定子」を参照してください。More information: The "fff" Custom Format Specifier.
6/15/2009 13:45:30.617 -> 6176/15/2009 13:45:30.617 -> 617

6/15/2009 13:45:30.0005 -> 0006/15/2009 13:45:30.0005 -> 000
"ffff""ffff" 日時値の秒部分の 1/10000。The ten thousandths of a second in a date and time value.

詳細については、「"ffff" カスタム書式指定子」を参照してください。More information: The "ffff" Custom Format Specifier.
2009-06-15T13:45:30.6175000 -> 61752009-06-15T13:45:30.6175000 -> 6175

2009-06-15T13:45:30.0000500 -> 00002009-06-15T13:45:30.0000500 -> 0000
"fffff""fffff" 日時値の秒部分の 1/100000。The hundred thousandths of a second in a date and time value.

詳細については、「"fffff" カスタム書式指定子」を参照してください。More information: The "fffff" Custom Format Specifier.
2009-06-15T13:45:30.6175400 -> 617542009-06-15T13:45:30.6175400 -> 61754

6/15/2009 13:45:30.000005 -> 000006/15/2009 13:45:30.000005 -> 00000
"ffffff""ffffff" 日時値の秒部分の 1/1000000。The millionths of a second in a date and time value.

詳細については、「"ffffff" カスタム書式指定子」を参照してください。More information: The "ffffff" Custom Format Specifier.
2009-06-15T13:45:30.6175420 -> 6175422009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> 0000002009-06-15T13:45:30.0000005 -> 000000
"fffffff""fffffff" 日時値の秒部分の 1/10000000。The ten millionths of a second in a date and time value.

詳細については、「"fffffff" カスタム書式指定子」を参照してください。More information: The "fffffff" Custom Format Specifier.
2009-06-15T13:45:30.6175425 -> 61754252009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 00011502009-06-15T13:45:30.0001150 -> 0001150
"F""F" 日時値の秒部分の 1/10 (0 以外の場合)。If non-zero, the tenths of a second in a date and time value.

詳細については、「"F" カスタム書式指定子」を参照してください。More information: The "F" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 62009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.0500000 -> (no output)2009-06-15T13:45:30.0500000 -> (no output)
"FF""FF" 日時値の秒部分の 1/100 (0 以外の場合)。If non-zero, the hundredths of a second in a date and time value.

詳細については、「"FF" カスタム書式指定子」を参照してください。More information: The "FF" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 612009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> (no output)2009-06-15T13:45:30.0050000 -> (no output)
"FFF""FFF" 日時値の秒部分の 1/1000 (0 以外の場合)。If non-zero, the milliseconds in a date and time value.

詳細については、「"FFF" カスタム書式指定子」を参照してください。More information: The "FFF" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 6172009-06-15T13:45:30.6170000 -> 617

2009-06-15T13:45:30.0005000 -> (no output)2009-06-15T13:45:30.0005000 -> (no output)
"FFFF""FFFF" 日時値の秒部分の 1/10000 (0 以外の場合)。If non-zero, the ten thousandths of a second in a date and time value.

詳細については、「"FFFF" カスタム書式指定子」を参照してください。More information: The "FFFF" Custom Format Specifier.
2009-06-15T13:45:30.5275000 -> 52752009-06-15T13:45:30.5275000 -> 5275

2009-06-15T13:45:30.0000500 -> (no output)2009-06-15T13:45:30.0000500 -> (no output)
"FFFFF""FFFFF" 日時値の秒部分の 1/100000 (0 以外の場合)。If non-zero, the hundred thousandths of a second in a date and time value.

詳細については、「"FFFFF" カスタム書式指定子」を参照してください。More information: The "FFFFF" Custom Format Specifier.
2009-06-15T13:45:30.6175400 -> 617542009-06-15T13:45:30.6175400 -> 61754

2009-06-15T13:45:30.0000050 -> (no output)2009-06-15T13:45:30.0000050 -> (no output)
"FFFFFF""FFFFFF" 日時値の秒部分の 1/1000000 (0 以外の場合)。If non-zero, the millionths of a second in a date and time value.

詳細については、「"FFFFFF" カスタム書式指定子」を参照してください。More information: The "FFFFFF" Custom Format Specifier.
2009-06-15T13:45:30.6175420 -> 6175422009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> (no output)2009-06-15T13:45:30.0000005 -> (no output)
"FFFFFFF""FFFFFFF" 日時値の秒部分の 1/10000000 (0 以外の場合)。If non-zero, the ten millionths of a second in a date and time value.

詳細については、「"FFFFFFF" カスタム書式指定子」を参照してください。More information: The "FFFFFFF" Custom Format Specifier.
2009-06-15T13:45:30.6175425 -> 61754252009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 0001152009-06-15T13:45:30.0001150 -> 000115
"g"、"gg""g", "gg" 時期または時代 (年号)。The period or era.

詳細については、「"g" または "gg" カスタム書式指定子」を参照してください。More information: The "g" or "gg" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> A.D.2009-06-15T13:45:30.6170000 -> A.D.
"h""h" 12 時間形式の時間 (1 ~ 12)。The hour, using a 12-hour clock from 1 to 12.

詳細については、「"h" カスタム書式指定子」を参照してください。More information: The "h" Custom Format Specifier.
2009-06-15T01:45:30 -> 12009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 12009-06-15T13:45:30 -> 1
"hh""hh" 12 時間形式の時間 (01 ~ 12)。The hour, using a 12-hour clock from 01 to 12.

詳細については、「"hh" カスタム書式指定子」を参照してください。More information: The "hh" Custom Format Specifier.
2009-06-15T01:45:30 -> 012009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 012009-06-15T13:45:30 -> 01
"H""H" 24 時間形式の時間 (0 ~ 23)。The hour, using a 24-hour clock from 0 to 23.

詳細については、「"H" カスタム書式指定子」を参照してください。More information: The "H" Custom Format Specifier.
2009-06-15T01:45:30 -> 12009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 132009-06-15T13:45:30 -> 13
"HH""HH" 24 時間形式の時間 (00 ~ 23)。The hour, using a 24-hour clock from 00 to 23.

詳細については、「"HH" カスタム書式指定子」を参照してください。More information: The "HH" Custom Format Specifier.
2009-06-15T01:45:30 -> 012009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 132009-06-15T13:45:30 -> 13
"K""K" タイム ゾーン情報。Time zone information.

詳細については、「"K" カスタム書式指定子」を参照してください。More information: The "K" Custom Format Specifier.
DateTime 値の場合:With DateTime values:

2009-06-15T13:45:30, Kind Unspecified ->2009-06-15T13:45:30, Kind Unspecified ->

2009-06-15T13:45:30, Kind Utc -> Z2009-06-15T13:45:30, Kind Utc -> Z

2009-06-15T13:45:30, Kind Local -> -07:00 (depends on local computer settings)2009-06-15T13:45:30, Kind Local -> -07:00 (depends on local computer settings)

DateTimeOffset 値の場合:With DateTimeOffset values:

2009-06-15T01:45:30-07:00 --> -07:002009-06-15T01:45:30-07:00 --> -07:00

2009-06-15T08:45:30+00:00 --> +00:002009-06-15T08:45:30+00:00 --> +00:00
"m""m" 分 (0 ~ 59)。The minute, from 0 through 59.

詳細については、「"m" カスタム書式指定子」を参照してください。More information: The "m" Custom Format Specifier.
2009-06-15T01:09:30 -> 92009-06-15T01:09:30 -> 9

2009-06-15T13:29:30 -> 292009-06-15T13:29:30 -> 29
"mm""mm" 分 (00 ~ 59)。The minute, from 00 through 59.

詳細については、「"mm" カスタム書式指定子」を参照してください。More information: The "mm" Custom Format Specifier.
2009-06-15T01:09:30 -> 092009-06-15T01:09:30 -> 09

2009-06-15T01:45:30 -> 452009-06-15T01:45:30 -> 45
"M""M" 月 (1 ~ 12)。The month, from 1 through 12.

詳細については、「"M" カスタム書式指定子」を参照してください。More information: The "M" Custom Format Specifier.
2009-06-15T13:45:30 -> 62009-06-15T13:45:30 -> 6
"MM""MM" 月 (01 ~ 12)。The month, from 01 through 12.

詳細については、「"MM" カスタム書式指定子」を参照してください。More information: The "MM" Custom Format Specifier.
2009-06-15T13:45:30 -> 062009-06-15T13:45:30 -> 06
"MMM""MMM" 月の省略名。The abbreviated name of the month.

詳細については、「"MMM" カスタム書式指定子」を参照してください。More information: The "MMM" Custom Format Specifier.
2009-06-15T13:45:30 -> Jun (en-US)2009-06-15T13:45:30 -> Jun (en-US)

2009-06-15T13:45:30 -> juin (fr-FR)2009-06-15T13:45:30 -> juin (fr-FR)

2009-06-15T13:45:30 -> Jun (zu-ZA)2009-06-15T13:45:30 -> Jun (zu-ZA)
"MMMM""MMMM" 月の完全名。The full name of the month.

詳細については、「"MMMM" カスタム書式指定子」を参照してください。More information: The "MMMM" Custom Format Specifier.
2009-06-15T13:45:30 -> June (en-US)2009-06-15T13:45:30 -> June (en-US)

2009-06-15T13:45:30 -> juni (da-DK)2009-06-15T13:45:30 -> juni (da-DK)

2009-06-15T13:45:30 -> uJuni (zu-ZA)2009-06-15T13:45:30 -> uJuni (zu-ZA)
"s""s" 秒 (0 ~ 59)。The second, from 0 through 59.

詳細については、「"s" カスタム書式指定子」を参照してください。More information: The "s" Custom Format Specifier.
2009-06-15T13:45:09 -> 92009-06-15T13:45:09 -> 9
"ss""ss" 秒 (00 ~ 59)。The second, from 00 through 59.

詳細については、「"ss" カスタム書式指定子」を参照してください。More information: The "ss" Custom Format Specifier.
2009-06-15T13:45:09 -> 092009-06-15T13:45:09 -> 09
"t""t" AM/PM 指定子の最初の文字。The first character of the AM/PM designator.

詳細については、「"t" カスタム書式指定子」を参照してください。More information: The "t" Custom Format Specifier.
2009-06-15T13:45:30 -> P (en-US)2009-06-15T13:45:30 -> P (en-US)

2009-06-15T13:45:30 -> 午 (ja-JP)2009-06-15T13:45:30 -> 午 (ja-JP)

2009-06-15T13:45:30 -> (fr-FR)2009-06-15T13:45:30 -> (fr-FR)
"tt""tt" AM/PM 指定子。The AM/PM designator.

詳細については、「"tt" カスタム書式指定子」を参照してください。More information: The "tt" Custom Format Specifier.
2009-06-15T13:45:30 -> PM (en-US)2009-06-15T13:45:30 -> PM (en-US)

2009-06-15T13:45:30 -> 午後 (ja-JP)2009-06-15T13:45:30 -> 午後 (ja-JP)

2009-06-15T13:45:30 -> (fr-FR)2009-06-15T13:45:30 -> (fr-FR)
"y""y" 年 (0 ~ 99)。The year, from 0 to 99.

詳細については、「"y" カスタム書式指定子」を参照してください。More information: The "y" Custom Format Specifier.
0001-01-01T00:00:00 -> 10001-01-01T00:00:00 -> 1

0900-01-01T00:00:00 -> 00900-01-01T00:00:00 -> 0

1900-01-01T00:00:00 -> 01900-01-01T00:00:00 -> 0

2009-06-15T13:45:30 -> 92009-06-15T13:45:30 -> 9

2019-06-15T13:45:30 -> 192019-06-15T13:45:30 -> 19
"yy""yy" 年 (00 ~ 99)。The year, from 00 to 99.

詳細については、「"yy" カスタム書式指定子」を参照してください。More information: The "yy" Custom Format Specifier.
0001-01-01T00:00:00 -> 010001-01-01T00:00:00 -> 01

0900-01-01T00:00:00 -> 000900-01-01T00:00:00 -> 00

1900-01-01T00:00:00 -> 001900-01-01T00:00:00 -> 00

2019-06-15T13:45:30 -> 192019-06-15T13:45:30 -> 19
"yyy""yyy" 年 (3 桁以上)。The year, with a minimum of three digits.

詳細については、「"yyy" カスタム書式指定子」を参照してください。More information: The "yyy" Custom Format Specifier.
0001-01-01T00:00:00 -> 0010001-01-01T00:00:00 -> 001

0900-01-01T00:00:00 -> 9000900-01-01T00:00:00 -> 900

1900-01-01T00:00:00 -> 19001900-01-01T00:00:00 -> 1900

2009-06-15T13:45:30 -> 20092009-06-15T13:45:30 -> 2009
"yyyy""yyyy" 年 (4 桁の数値)。The year as a four-digit number.

詳細については、「"yyyy" カスタム書式指定子」を参照してください。More information: The "yyyy" Custom Format Specifier.
0001-01-01T00:00:00 -> 00010001-01-01T00:00:00 -> 0001

0900-01-01T00:00:00 -> 09000900-01-01T00:00:00 -> 0900

1900-01-01T00:00:00 -> 19001900-01-01T00:00:00 -> 1900

2009-06-15T13:45:30 -> 20092009-06-15T13:45:30 -> 2009
"yyyyy""yyyyy" 年 (5 桁の数値)。The year as a five-digit number.

詳細については、「"yyyyy" カスタム書式指定子」を参照してください。More information: The "yyyyy" Custom Format Specifier.
0001-01-01T00:00:00 -> 000010001-01-01T00:00:00 -> 00001

2009-06-15T13:45:30 -> 020092009-06-15T13:45:30 -> 02009
"z""z" UTC を基準とする時間単位のオフセット (先行ゼロなし)。Hours offset from UTC, with no leading zeros.

詳細については、「"z" カスタム書式指定子」を参照してください。More information: The "z" Custom Format Specifier.
2009-06-15T13:45:30-07:00 -> -72009-06-15T13:45:30-07:00 -> -7
"zz""zz" UTC を基準とする時間単位のオフセット (先行ゼロ付きの 1 桁の値)。Hours offset from UTC, with a leading zero for a single-digit value.

詳細については、「"zz" カスタム書式指定子」を参照してください。More information: The "zz" Custom Format Specifier.
2009-06-15T13:45:30-07:00 -> -072009-06-15T13:45:30-07:00 -> -07
"zzz""zzz" UTC を基準とする時間および分単位のオフセット。Hours and minutes offset from UTC.

詳細については、「"zzz" カスタム書式指定子」を参照してください。More information: The "zzz" Custom Format Specifier.
2009-06-15T13:45:30-07:00 -> -07:002009-06-15T13:45:30-07:00 -> -07:00
":"":" 時刻の区切り記号。The time separator.

詳細については、「":" カスタム書式指定子」を参照してください。More information: The ":" Custom Format Specifier.
2009-06-15T13:45:30 -> : (en-US)2009-06-15T13:45:30 -> : (en-US)

2009-06-15T13:45:30 -> .2009-06-15T13:45:30 -> . (it-IT)(it-IT)

2009-06-15T13:45:30 -> : (ja-JP)2009-06-15T13:45:30 -> : (ja-JP)
"/""/" 日付の区切り記号。The date separator.

詳細については、「"/" カスタム書式指定子」を参照してください。More Information: The "/" Custom Format Specifier.
2009-06-15T13:45:30 -> / (en-US)2009-06-15T13:45:30 -> / (en-US)

2009-06-15T13:45:30 -> - (ar-DZ)2009-06-15T13:45:30 -> - (ar-DZ)

2009-06-15T13:45:30 -> .2009-06-15T13:45:30 -> . (tr-TR)(tr-TR)
"文字列""string"

'文字列''string'
リテラル文字列の区切り記号。Literal string delimiter.

詳細については、「文字リテラル」を参照してください。More information: Character literals.
2009-06-15T13:45:30 ("arr:" h:m t) -> arr: 1:45 P2009-06-15T13:45:30 ("arr:" h:m t) -> arr: 1:45 P

2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P
% 後続の文字をカスタム書式指定子として定義します。Defines the following character as a custom format specifier.

詳細については、「単一のカスタム書式指定子の使用」を参照してください。More information:Using Single Custom Format Specifiers.
2009-06-15T13:45:30 (%h) -> 12009-06-15T13:45:30 (%h) -> 1
\|エスケープ文字。\|The escape character.

詳細については、「文字リテラル」および「エスケープ文字の使用」を参照してください。More information: Character literals and Using the Escape Character.
2009-06-15T13:45:30 (h \h) -> 1 h2009-06-15T13:45:30 (h \h) -> 1 h
その他の文字Any other character 文字が結果の文字列にそのままコピーされます。The character is copied to the result string unchanged.

詳細については、「文字リテラル」を参照してください。More information: Character literals.
2009-06-15T01:45:30 (arr hh:mm t) -> arr 01:45 A2009-06-15T01:45:30 (arr hh:mm t) -> arr 01:45 A

以降では、それぞれのカスタム日時書式指定子について詳しく説明します。The following sections provide additional information about each custom date and time format specifier. 特に明記されない限り、各指定子は、DateTime 値で使用しても、DateTimeOffset 値で使用してもまったく同じ文字列形式を生成します。Unless otherwise noted, each specifier produces an identical string representation regardless of whether it is used with a DateTime value or a DateTimeOffset value.

"d" カスタム書式指定子The "d" custom format specifier

"d" カスタム書式指定子は、月の日にちを 1 ~ 31 の数値として表します。The "d" custom format specifier represents the day of the month as a number from 1 through 31. 1 桁の日にちは、先行ゼロなしで書式設定されます。A single-digit day is formatted without a leading zero.

"d" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"d" は標準の日時書式指定子として解釈されます。If the "d" format specifier is used without other custom format specifiers, it is interpreted as the "d" standard date and time format specifier. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

次の例では、複数の書式指定文字列の中に "d" カスタム書式指定子が含まれます。The following example includes the "d" custom format specifier in several format strings.

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                                                
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                                                

表のトップへBack to table

"dd" カスタム書式指定子The "dd" custom format specifier

"dd" カスタム書式指定文字列は、月の日にちを 01 ~ 31 の数値として表します。The "dd" custom format string represents the day of the month as a number from 01 through 31. 1 桁の日にちは、先行ゼロ付きで書式設定されます。A single-digit day is formatted with a leading zero.

次の例では、カスタム書式指定文字列の中に "dd" カスタム書式指定子が含まれます。The following example includes the "dd" custom format specifier in a custom format string.

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

Console.WriteLine(date1.ToString("dd, MM", 
                  CultureInfo.InvariantCulture)); 
// 02, 01
Dim date1 As Date = #1/2/2008 6:30:15AM#

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

表のトップへBack to table

"ddd" カスタム書式指定子The "ddd" custom format specifier

"ddd" カスタム書式指定子は、曜日の省略名を表します。The "ddd" custom format specifier represents the abbreviated name of the day of the week. 曜日のローカライズされた省略名は、現在のカルチャまたは特定のカルチャの DateTimeFormatInfo.AbbreviatedDayNames プロパティから取得されます。The localized abbreviated name of the day of the week is retrieved from the DateTimeFormatInfo.AbbreviatedDayNames property of the current or specified culture.

次の例では、カスタム書式指定文字列の中に "ddd" カスタム書式指定子が含まれます。The following example includes the "ddd" custom format specifier in a custom format string.

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 août                                                
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 août                                                

表のトップへBack to table

"dddd" カスタム書式指定子The "dddd" custom format specifier

"dddd" カスタム書式指定子 (任意の数の "d" 指定子を追加可能) は、曜日の完全名を表します。The "dddd" custom format specifier (plus any number of additional "d" specifiers) represents the full name of the day of the week. 曜日のローカライズされた名前は、現在のカルチャまたは特定のカルチャの DateTimeFormatInfo.DayNames プロパティから取得されます。The localized name of the day of the week is retrieved from the DateTimeFormatInfo.DayNames property of the current or specified culture.

次の例では、カスタム書式指定文字列の中に "dddd" カスタム書式指定子が含まれます。The following example includes the "dddd" custom format specifier in a custom format string.

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                                
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                                          

表のトップへBack to table

"f" カスタム書式指定子The "f" custom format specifier

"f" カスタム書式指定子は、秒の端数の最上位桁 (つまり、日時値の秒部分の 1/10) を表します。The "f" custom format specifier represents the most significant digit of the seconds fraction; that is, it represents the tenths of a second in a date and time value.

"f" 書式指定子が単独で使用され、その他の書式指定子がない場合、"f" は標準の日時書式指定子として解釈されます。If the "f" format specifier is used without other format specifiers, it is interpreted as the "f" standard date and time format specifier. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

ParseExactTryParseExactParseExactTryParseExact のいずれかのメソッドに渡す書式指定文字列の一部として "f" 書式指定子を使用する場合、"f" 書式指定子の数は、文字列を正しく解析するために、秒の端数の最上位桁数が何桁存在している必要があるかを表します。When you use "f" format specifiers as part of a format string supplied to the ParseExact, TryParseExact, ParseExact, or TryParseExact method, the number of "f" format specifiers indicates the number of most significant digits of the seconds fraction that must be present to successfully parse the string.

次の例では、カスタム書式指定文字列の中に "f" カスタム書式指定子が含まれます。The following example includes the "f" custom format specifier in a custom format string.

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
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

表のトップへBack to table

"ff" カスタム書式指定子The "ff" custom format specifier

"ff" カスタム書式指定子は、秒の端数の最上位 2 桁 (つまり、日時値の秒部分の 1/100) を表します。The "ff" custom format specifier represents the two most significant digits of the seconds fraction; that is, it represents the hundredths of a second in a date and time value.

次の例では、カスタム書式指定文字列の中に "ff" カスタム書式指定子が含まれます。following example includes the "ff" custom format specifier in a custom format string.

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
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

表のトップへBack to table

"fff" カスタム書式指定子The "fff" custom format specifier

"fff" カスタム書式指定子は、秒の端数の最上位 3 桁 (つまり、日時値の秒部分の 1/1000) を表します。The "fff" custom format specifier represents the three most significant digits of the seconds fraction; that is, it represents the milliseconds in a date and time value.

次の例では、カスタム書式指定文字列の中に "fff" カスタム書式指定子が含まれます。The following example includes the "fff" custom format specifier in a custom format string.

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
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

表のトップへBack to table

"ffff" カスタム書式指定子The "ffff" custom format specifier

"ffff" カスタム書式指定子は、秒の端数の最上位 4 桁 (つまり、日時値の秒部分の 1/10000) を表します。The "ffff" custom format specifier represents the four most significant digits of the seconds fraction; that is, it represents the ten thousandths of a second in a date and time value.

時刻値の 1/10000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。Although it is possible to display the ten thousandths of a second component of a time value, that value may not be meaningful. 日付および時刻の値の精度は、システム クロックの分解能に依存します。The precision of date and time values depends on the resolution of the system clock. Windows NT Version 3.5 (およびそれ以降) および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。On the Windows NT version 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

表のトップへBack to table

"fffff" カスタム書式指定子The "fffff" custom format specifier

"fffff" カスタム書式指定子は、秒の端数の最上位 5 桁 (つまり、日時値の秒部分の 1/100000) を表します。The "fffff" custom format specifier represents the five most significant digits of the seconds fraction; that is, it represents the hundred thousandths of a second in a date and time value.

時刻値の 1/100000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。Although it is possible to display the hundred thousandths of a second component of a time value, that value may not be meaningful. 日付および時刻の値の精度は、システム クロックの分解能に依存します。The precision of date and time values depends on the resolution of the system clock. Windows NT 3.5 (およびそれ以降) および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

表のトップへBack to table

"ffffff" カスタム書式指定子The "ffffff" custom format specifier

"ffffff" カスタム書式指定子は、秒の端数の最上位 6 桁 (つまり、日時値の秒部分の 1/1000000) を表します。The "ffffff" custom format specifier represents the six most significant digits of the seconds fraction; that is, it represents the millionths of a second in a date and time value.

時刻値の 1/1000000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。Although it is possible to display the millionths of a second component of a time value, that value may not be meaningful. 日付および時刻の値の精度は、システム クロックの分解能に依存します。The precision of date and time values depends on the resolution of the system clock. Windows NT 3.5 (およびそれ以降) および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

表のトップへBack to table

"fffffff" カスタム書式指定子The "fffffff" custom format specifier

"fffffff" カスタム書式指定子は、秒の端数の最上位 7 桁 (つまり、日時値の秒部分の 1/10000000) を表します。The "fffffff" custom format specifier represents the seven most significant digits of the seconds fraction; that is, it represents the ten millionths of a second in a date and time value.

時刻値の 1/10000000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。Although it is possible to display the ten millionths of a second component of a time value, that value may not be meaningful. 日付および時刻の値の精度は、システム クロックの分解能に依存します。The precision of date and time values depends on the resolution of the system clock. Windows NT 3.5 (およびそれ以降) および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

表のトップへBack to table

"F" カスタム書式指定子The "F" custom format specifier

"F" カスタム書式指定子は、秒の端数の最上位桁 (つまり、日時値の秒部分の 1/10) を表します。The "F" custom format specifier represents the most significant digit of the seconds fraction; that is, it represents the tenths of a second in a date and time value. その桁がゼロの場合には、何も表示されません。Nothing is displayed if the digit is zero.

"F" 書式指定子が単独で使用され、その他の書式指定子がない場合、"F" は標準の日時書式指定子として解釈されます。If the "F" format specifier is used without other format specifiers, it is interpreted as the "F" standard date and time format specifier. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

ParseExactTryParseExactParseExactTryParseExact のいずれかのメソッドの引数として使用された場合、"F" 書式指定子の数は、文字列を正しく解析するために、秒の端数の最上位桁数が最大何桁存在している必要があるかを表します。The number of "F" format specifiers used with the ParseExact, TryParseExact, ParseExact, or TryParseExact method indicates the maximum number of most significant digits of the seconds fraction that can be present to successfully parse the string.

次の例では、カスタム書式指定文字列の中に "F" カスタム書式指定子が含まれます。The following example includes the "F" custom format specifier in a custom format string.

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
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

表のトップへBack to table

"FF" カスタム書式指定子The "FF" custom format specifier

"FF" カスタム書式指定子は、秒の端数の最上位 2 桁 (つまり、日時値の秒部分の 1/100) を表します。The "FF" custom format specifier represents the two most significant digits of the seconds fraction; that is, it represents the hundredths of a second in a date and time value. ただし、後続のゼロは表示されません。また、2 桁のゼロも表示されません。However, trailing zeros or two zero digits are not displayed.

次の例では、カスタム書式指定文字列の中に "FF" カスタム書式指定子が含まれます。The following example includes the "FF" custom format specifier in a custom format string.

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
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

表のトップへBack to table

"FFF" カスタム書式指定子The "FFF" custom format specifier

"FFF" カスタム書式指定子は、秒の端数の最上位 3 桁 (つまり、日時値の秒部分の 1/1000) を表します。The "FFF" custom format specifier represents the three most significant digits of the seconds fraction; that is, it represents the milliseconds in a date and time value. ただし、後続のゼロは表示されません。また、3 桁のゼロも表示されません。However, trailing zeros or three zero digits are not displayed.

次の例では、カスタム書式指定文字列の中に "FFF" カスタム書式指定子が含まれます。The following example includes the "FFF" custom format specifier in a custom format string.

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
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

表のトップへBack to table

"FFFF" カスタム書式指定子The "FFFF" custom format specifier

"FFFF" カスタム書式指定子は、秒の端数の最上位 4 桁 (つまり、日時値の秒部分の 1/10000) を表します。The "FFFF" custom format specifier represents the four most significant digits of the seconds fraction; that is, it represents the ten thousandths of a second in a date and time value. ただし、後続のゼロは表示されません。また、4 桁のゼロも表示されません。However, trailing zeros or four zero digits are not displayed.

時刻値の 1/10000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。Although it is possible to display the ten thousandths of a second component of a time value, that value may not be meaningful. 日付および時刻の値の精度は、システム クロックの分解能に依存します。The precision of date and time values depends on the resolution of the system clock. Windows NT 3.5 (およびそれ以降) および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

表のトップへBack to table

"FFFFF" カスタム書式指定子The "FFFFF" custom format specifier

"FFFFF" カスタム書式指定子は、秒の端数の最上位 5 桁 (つまり、日時値の秒部分の 1/100000) を表します。The "FFFFF" custom format specifier represents the five most significant digits of the seconds fraction; that is, it represents the hundred thousandths of a second in a date and time value. ただし、後続のゼロは表示されません。また、5 桁のゼロも表示されません。However, trailing zeros or five zero digits are not displayed.

時刻値の 1/100000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。Although it is possible to display the hundred thousandths of a second component of a time value, that value may not be meaningful. 日付および時刻の値の精度は、システム クロックの分解能に依存します。The precision of date and time values depends on the resolution of the system clock. Windows NT 3.5 (およびそれ以降) および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

表のトップへBack to table

"FFFFFF" カスタム書式指定子The "FFFFFF" custom format specifier

"FFFFFF" カスタム書式指定子は、秒の端数の最上位 6 桁 (つまり、日時値の秒部分の 1/1000000) を表します。The "FFFFFF" custom format specifier represents the six most significant digits of the seconds fraction; that is, it represents the millionths of a second in a date and time value. ただし、後続のゼロは表示されません。また、6 桁のゼロも表示されません。However, trailing zeros or six zero digits are not displayed.

時刻値の 1/1000000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。Although it is possible to display the millionths of a second component of a time value, that value may not be meaningful. 日付および時刻の値の精度は、システム クロックの分解能に依存します。The precision of date and time values depends on the resolution of the system clock. Windows NT 3.5 (およびそれ以降) および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。On tfhe Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

表のトップへBack to table

"FFFFFFF" カスタム書式指定子The "FFFFFFF" custom format specifier

"FFFFFFF" カスタム書式指定子は、秒の端数の最上位 7 桁 (つまり、日時値の秒部分の 1/10000000) を表します。The "FFFFFFF" custom format specifier represents the seven most significant digits of the seconds fraction; that is, it represents the ten millionths of a second in a date and time value. ただし、後続のゼロは表示されません。また、7 桁のゼロも表示されません。However, trailing zeros or seven zero digits are not displayed.

時刻値の 1/10000000 秒要素を表示することもできますが、このような値は意味を持たない場合があります。Although it is possible to display the ten millionths of a second component of a time value, that value may not be meaningful. 日付および時刻の値の精度は、システム クロックの分解能に依存します。The precision of date and time values depends on the resolution of the system clock. Windows NT 3.5 (およびそれ以降) および Windows Vista オペレーティング システムでは、システム時計の解像力は約 10 ~ 15 ミリ秒です。On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

表のトップへBack to table

"g" または "gg" カスタム書式指定子The "g" or "gg" custom format specifier

"g" または "gg" カスタム書式指定子 (任意の数の "g" 指定子を追加可能) は、A.D. などの時期または時代 (年号) を表します。The "g" or "gg" custom format specifiers (plus any number of additional "g" specifiers) represents the period or era, such as A.D. 書式設定される日付に時期または時代 (年号) の文字列が関連付けられていない場合、この指定子は無視されます。The formatting operation ignores this specifier if the date to be formatted does not have an associated period or era string.

"g" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"g" は標準の日時書式指定子として解釈されます。If the "g" format specifier is used without other custom format specifiers, it is interpreted as the "g" standard date and time format specifier. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

次の例では、カスタム書式指定文字列の中に "g" カスタム書式指定子が含まれます。The following example includes the "g" custom format specifier in a custom format string.

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.
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.

表のトップへBack to table

"h" カスタム書式指定子The "h" custom format specifier

"h" カスタム書式指定子は、時間を 1 ~ 12 の数値として表します。つまり、午前 0 時と午後 0 時から時間をカウントする 12 時間制で時間が表されます。The "h" custom format specifier represents the hour as a number from 1 through 12; that is, the hour is represented by a 12-hour clock that counts the whole hours since midnight or noon. 午前 0 時からの特定の時間を、午後 0 時からの同じ時間と区別できません。A particular hour after midnight is indistinguishable from the same hour after noon. 時間は丸められず、1 桁の時間は先行ゼロなしで書式設定されます。The hour is not rounded, and a single-digit hour is formatted without a leading zero. たとえば、午前と午後の 5:43 という時間は、このカスタム書式指定子によって "5" と表示されます。For example, given a time of 5:43 in the morning or afternoon, this custom format specifier displays "5".

"h" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"h" は標準の日時書式指定子として解釈され、FormatException をスローします。If the "h" format specifier is used without other custom format specifiers, it is interpreted as a standard date and time format specifier and throws a FormatException. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

次の例では、カスタム書式指定文字列の中に "h" カスタム書式指定子が含まれます。The following example includes the "h" custom format specifier in a custom format string.

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 µ
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 µ

表のトップへBack to table

"hh" カスタム書式指定子The "hh" custom format specifier

"hh" カスタム書式指定子 (任意の数の "h" 指定子を追加可能) は、時間を 1 ~ 12 の数値として表します。つまり、午前 0 時と午後 0 時から時間をカウントする 12 時間制で時間が表されます。The "hh" custom format specifier (plus any number of additional "h" specifiers) represents the hour as a number from 01 through 12; that is, the hour is represented by a 12-hour clock that counts the whole hours since midnight or noon. 午前 0 時からの特定の時間を、午後 0 時からの同じ時間と区別できません。A particular hour after midnight is indistinguishable from the same hour after noon. 時間は丸められず、1 桁の時間は先行ゼロ付きで書式設定されます。The hour is not rounded, and a single-digit hour is formatted with a leading zero. たとえば、午前と午後の 5:43 という時間は、この書式指定子によって "05" と表示されます。For example, given a time of 5:43 in the morning or afternoon, this format specifier displays "05".

次の例では、カスタム書式指定文字列の中に "hh" カスタム書式指定子が含まれます。The following example includes the "hh" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss 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.
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss 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.

表のトップへBack to table

"H" カスタム書式指定子The "H" custom format specifier

"H" カスタム書式指定子は、時間を 0 ~ 23 の数値として表します。つまり、午前 0 時から時間をカウントする 24 時間制で時間が表されます。The "H" custom format specifier represents the hour as a number from 0 through 23; that is, the hour is represented by a zero-based 24-hour clock that counts the hours since midnight. 1 桁の時間は、先行ゼロなしで書式設定されます。A single-digit hour is formatted without a leading zero.

"H" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"H" は標準の日時書式指定子として解釈され、FormatException をスローします。If the "H" format specifier is used without other custom format specifiers, it is interpreted as a standard date and time format specifier and throws a FormatException. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

次の例では、カスタム書式指定文字列の中に "H" カスタム書式指定子が含まれます。The following example includes the "H" custom format specifier in a custom format string.

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

表のトップへBack to table

"HH" カスタム書式指定子The "HH" custom format specifier

"HH" カスタム書式指定子 (任意の数の "H" 指定子を追加可能) は、時間を 00 ~ 23 の数値として表します。つまり、午前 0 時から時間をカウントする 24 時間制で時間が表されます。The "HH" custom format specifier (plus any number of additional "H" specifiers) represents the hour as a number from 00 through 23; that is, the hour is represented by a zero-based 24-hour clock that counts the hours since midnight. 1 桁の時間は、先行ゼロ付きで書式設定されます。A single-digit hour is formatted with a leading zero.

次の例では、カスタム書式指定文字列の中に "HH" カスタム書式指定子が含まれます。The following example includes the "HH" custom format specifier in a custom format string.

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

表のトップへBack to table

"K" カスタム書式指定子The "K" custom format specifier

"K" カスタム書式指定子は、日付と時刻の値のタイム ゾーン情報を表します。The "K" custom format specifier represents the time zone information of a date and time value. この書式指定子を DateTime 値で使用した場合、書式設定後の文字列は、DateTime.Kind プロパティの値によって定義されます。When this format specifier is used with DateTime values, the result string is defined by the value of the DateTime.Kind property:

  • ローカル タイム ゾーンの場合 (DateTime.Kind プロパティ値 = DateTimeKind.Local)、この指定子は "zzz" 指定子に相当し、書式設定後の文字列には世界協定時刻 (UTC: Coordinated Universal Time) からのローカル オフセットが含まれます ("-07:00" など)。For the local time zone (a DateTime.Kind property value of DateTimeKind.Local), this specifier is equivalent to the "zzz" specifier and produces a result string containing the local offset from Coordinated Universal Time (UTC); for example, "-07:00".

  • UTC 時刻の場合 (DateTime.Kind プロパティ値 = DateTimeKind.Utc)、書式設定後の文字列には UTC 日付を表す "Z" 文字が含まれます。For a UTC time (a DateTime.Kind property value of DateTimeKind.Utc), the result string includes a "Z" character to represent a UTC date.

  • タイム ゾーンが指定されていない時刻の場合 (DateTime.Kind プロパティ = DateTimeKind.Unspecified)、String.Empty と同じ結果になります。For a time from an unspecified time zone (a time whose DateTime.Kind property equals DateTimeKind.Unspecified), the result is equivalent to String.Empty.

"K" 書式指定子を DateTimeOffset 値で使用した場合、この指定子は "zzz" 書式指定子に相当し、書式設定後の文字列には DateTimeOffset 値の UTC を基準としたオフセットが含まれます。For DateTimeOffset values, the "K" format specifier is equivalent to the "zzz" format specifier, and produces a result string containing the DateTimeOffset value's offset from UTC.

"K" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"K" は標準の日時書式指定子として解釈され、FormatException をスローします。If the "K" format specifier is used without other custom format specifiers, it is interpreted as a standard date and time format specifier and throws a FormatException. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

次の例では、米国太平洋標準時タイム ゾーンのシステムで、"K" カスタム書式指定子と各種の DateTime 値および DateTimeOffset 値を組み合わせた結果の文字列を表示します。The following example displays the string that results from using the "K" custom format specifier with various DateTime and DateTimeOffset values on a system in the U.S. Pacific Time zone.

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                        
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                        

表のトップへBack to table

"m" カスタム書式指定子The "m" custom format specifier

"m" カスタム書式指定子は、分を 0 ~ 59 の数値として表します。The "m" custom format specifier represents the minute as a number from 0 through 59. この分は、直前の時間から経過した分数です。The minute represents whole minutes that have passed since the last hour. 1 桁の分は、先行ゼロなしで書式設定されます。A single-digit minute is formatted without a leading zero.

"m" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"m" は標準の日時書式指定子として解釈されます。If the "m" format specifier is used without other custom format specifiers, it is interpreted as the "m" standard date and time format specifier. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

次の例では、カスタム書式指定文字列の中に "m" カスタム書式指定子が含まれます。The following example includes the "m" custom format specifier in a custom format string.

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 µ
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 µ

表のトップへBack to table

"mm" カスタム書式指定子The "mm" custom format specifier

"mm" カスタム書式指定子 (任意の数の "m" 指定子を追加可能) は、分を 00 ~ 59 の数値として表します。The "mm" custom format specifier (plus any number of additional "m" specifiers) represents the minute as a number from 00 through 59. この分は、直前の時間から経過した分数です。The minute represents whole minutes that have passed since the last hour. 1 桁の分は、先行ゼロ付きで書式設定されます。A single-digit minute is formatted with a leading zero.

次の例では、カスタム書式指定文字列の中に "mm" カスタム書式指定子が含まれます。The following example includes the "mm" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss 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.
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss 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.

表のトップへBack to table

"M" カスタム書式指定子The "M" custom format specifier

"M" カスタム書式指定子は、月を 1 ~ 12 (13 の月がある暦の場合は 1 ~ 13) の数値として表します。The "M" custom format specifier represents the month as a number from 1 through 12 (or from 1 through 13 for calendars that have 13 months). 1 桁の月は、先行ゼロなしで書式設定されます。A single-digit month is formatted without a leading zero.

"M" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"M" は標準の日時書式指定子として解釈されます。If the "M" format specifier is used without other custom format specifiers, it is interpreted as the "M" standard date and time format specifier. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

次の例では、カスタム書式指定文字列の中に "M" カスタム書式指定子が含まれます。The following example includes the "M" custom format specifier in a custom format string.

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                       
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                       

表のトップへBack to table

"MM" カスタム書式指定子The "MM" custom format specifier

"MM" カスタム書式指定子は、月を 01 ~ 12 (13 の月がある暦の場合は 1 ~ 13) の数値として表します。The "MM" custom format specifier represents the month as a number from 01 through 12 (or from 1 through 13 for calendars that have 13 months). 1 桁の月は、先行ゼロ付きで書式設定されます。A single-digit month is formatted with a leading zero.

次の例では、カスタム書式指定文字列の中に "MM" カスタム書式指定子が含まれます。The following example includes the "MM" custom format specifier in a custom format string.

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

Console.WriteLine(date1.ToString("dd, MM", 
                  CultureInfo.InvariantCulture)); 
// 02, 01
Dim date1 As Date = #1/2/2008 6:30:15AM#

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

表のトップへBack to table

"MMM" カスタム書式指定子The "MMM" custom format specifier

"MMM" カスタム書式指定子は、月の省略名を表します。The "MMM" custom format specifier represents the abbreviated name of the month. 月のローカライズされた省略名は、現在のカルチャまたは特定のカルチャの DateTimeFormatInfo.AbbreviatedMonthNames プロパティから取得されます。The localized abbreviated name of the month is retrieved from the DateTimeFormatInfo.AbbreviatedMonthNames property of the current or specified culture.

次の例では、カスタム書式指定文字列の中に "MMM" カスタム書式指定子が含まれます。The following example includes the "MMM" custom format specifier in a custom format string.

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 août                                                
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 août                                                

表のトップへBack to table

"MMMM" カスタム書式指定子The "MMMM" custom format specifier

"MMMM" カスタム書式指定子は、月の完全名を表します。The "MMMM" custom format specifier represents the full name of the month. 月のローカライズされた名前は、現在のカルチャまたは特定のカルチャの DateTimeFormatInfo.MonthNames プロパティから取得されます。The localized name of the month is retrieved from the DateTimeFormatInfo.MonthNames property of the current or specified culture.

次の例では、カスタム書式指定文字列の中に "MMMM" カスタム書式指定子が含まれます。The following example includes the "MMMM" custom format specifier in a custom format string.

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                                
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                                          

表のトップへBack to table

"s" カスタム書式指定子The "s" custom format specifier

"s" カスタム書式指定子は、秒を 0 ~ 59 の数値として表します。The "s" custom format specifier represents the seconds as a number from 0 through 59. この秒は、直前の分から経過した秒数です。The result represents whole seconds that have passed since the last minute. 1 桁の秒は、先行ゼロなしで書式設定されます。A single-digit second is formatted without a leading zero.

"s" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"s" は標準の日時書式指定子として解釈されます。If the "s" format specifier is used without other custom format specifiers, it is interpreted as the "s" standard date and time format specifier. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

次の例では、カスタム書式指定文字列の中に "s" カスタム書式指定子が含まれます。The following example includes the "s" custom format specifier in a custom format string.

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 µ
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 µ

表のトップへBack to table

"ss" カスタム書式指定子The "ss" custom format specifier

"ss" カスタム書式指定子 (任意の数の "s" 指定子を追加可能) は、秒を 00 ~ 59 の数値として表します。The "ss" custom format specifier (plus any number of additional "s" specifiers) represents the seconds as a number from 00 through 59. この秒は、直前の分から経過した秒数です。The result represents whole seconds that have passed since the last minute. 1 桁の秒は、先行ゼロ付きで書式設定されます。A single-digit second is formatted with a leading zero.

次の例では、カスタム書式指定文字列の中に "ss" カスタム書式指定子が含まれます。The following example includes the "ss" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss 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.
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss 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.

表のトップへBack to table

"t" カスタム書式指定子The "t" custom format specifier

"t" カスタム書式指定子は、AM/PM 指定子の最初の文字を表します。The "t" custom format specifier represents the first character of the AM/PM designator. ローカライズされた適切な指定子は、現在のカルチャまたは特定のカルチャの DateTimeFormatInfo.AMDesignator プロパティまたは DateTimeFormatInfo.PMDesignator プロパティから取得されます。The appropriate localized designator is retrieved from the DateTimeFormatInfo.AMDesignator or DateTimeFormatInfo.PMDesignator property of the current or specific culture. AM 指定子は、0:00:00 (午前 0 時) から 11:59:59.999 までのすべての時刻に使用されます。The AM designator is used for all times from 0:00:00 (midnight) to 11:59:59.999. PM 指定子は、12:00:00 (正午) から 23:59:59.999 までのすべての時刻に使用されます。The PM designator is used for all times from 12:00:00 (noon) to 23:59:59.999.

"t" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"t" は標準の日時書式指定子として解釈されます。If the "t" format specifier is used without other custom format specifiers, it is interpreted as the "t" standard date and time format specifier. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

次の例では、カスタム書式指定文字列の中に "t" カスタム書式指定子が含まれます。The following example includes the "t" custom format specifier in a custom format string.

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 µ
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 µ

表のトップへBack to table

"tt" カスタム書式指定子The "tt" custom format specifier

"tt" カスタム書式指定子 (任意の数の "t" 指定子を追加可能) は、AM/PM 指定子全体を表します。The "tt" custom format specifier (plus any number of additional "t" specifiers) represents the entire AM/PM designator. ローカライズされた適切な指定子は、現在のカルチャまたは特定のカルチャの DateTimeFormatInfo.AMDesignator プロパティまたは DateTimeFormatInfo.PMDesignator プロパティから取得されます。The appropriate localized designator is retrieved from the DateTimeFormatInfo.AMDesignator or DateTimeFormatInfo.PMDesignator property of the current or specific culture. AM 指定子は、0:00:00 (午前 0 時) から 11:59:59.999 までのすべての時刻に使用されます。The AM designator is used for all times from 0:00:00 (midnight) to 11:59:59.999. PM 指定子は、12:00:00 (正午) から 23:59:59.999 までのすべての時刻に使用されます。The PM designator is used for all times from 12:00:00 (noon) to 23:59:59.999.

AM と PM を区別する必要のある言語の場合、必ず "tt" 指定子を使用する必要があります。Make sure to use the "tt" specifier for languages for which it is necessary to maintain the distinction between AM and PM. たとえば、日本語の場合、AM/PM 指定子の 2 番目の文字は異なりますが、先頭文字は同じです。An example is Japanese, for which the AM and PM designators differ in the second character instead of the first character.

次の例では、カスタム書式指定文字列の中に "tt" カスタム書式指定子が含まれます。The following example includes the "tt" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss 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.
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01 PM                        
Console.WriteLine(date1.ToString("hh:mm:ss 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.

表のトップへBack to table

"y" カスタム書式指定子The "y" custom format specifier

"y" カスタム書式指定子は、年を 1 桁または 2 桁の数値として表します。The "y" custom format specifier represents the year as a one-digit or two-digit number. 年が 2 桁を超える場合は、下 2 桁のみが結果に表示されます。If the year has more than two digits, only the two low-order digits appear in the result. 2 桁の年の 1 桁目がゼロで始まる場合 (2008 など)、先行ゼロが省略されます。If the first digit of a two-digit year begins with a zero (for example, 2008), the number is formatted without a leading zero.

"y" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"y" は標準の日時書式指定子として解釈されます。If the "y" format specifier is used without other custom format specifiers, it is interpreted as the "y" standard date and time format specifier. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

次の例では、カスタム書式指定文字列の中に "y" カスタム書式指定子が含まれます。The following example includes the "y" custom format specifier in a custom format string.

DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010      
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010      

表のトップへBack to table

"yy" カスタム書式指定子The "yy" custom format specifier

"yy" カスタム書式指定子は、年を 2 桁の数値として表します。The "yy" custom format specifier represents the year as a two-digit number. 年が 2 桁を超える場合は、下 2 桁のみが結果に表示されます。If the year has more than two digits, only the two low-order digits appear in the result. 年が 2 桁に満たない場合は、2 桁になるまで数値が先行ゼロで埋められます。If the two-digit year has fewer than two significant digits, the number is padded with leading zeros to produce two digits.

解析操作では、"yy" カスタム形式指定子を使用した 2 桁の年は、書式プロバイダーの現在のカレンダーの Calendar.TwoDigitYearMax プロパティに基づいて解釈されます。In a parsing operation, a two-digit year that is parsed using the "yy" custom format specifier is interpreted based on the Calendar.TwoDigitYearMax property of the format provider's current calendar. 次の例は、このケースでは現在のカルチャである en-US カルチャの既定のグレゴリオ暦を使用して、2 桁の年を持つ日付の文字列形式を解析します。The following example parses the string representation of a date that has a two-digit year by using the default Gregorian calendar of the en-US culture, which, in this case, is the current culture. 次に、CultureInfo プロパティが変更された GregorianCalendar オブジェクトが使用されるように、現在のカルチャの TwoDigitYearMax オブジェクトを変更します。It then changes the current culture's CultureInfo object to use a GregorianCalendar object whose TwoDigitYearMax property has been modified.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      string fmt = "dd-MMM-yy";
      string value = "24-Jan-49";
      
      Calendar cal = (Calendar) CultureInfo.CurrentCulture.Calendar.Clone();
      Console.WriteLine("Two Digit Year Range: {0} - {1}", 
                        cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax);
      
      Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, null));
      Console.WriteLine();
      
      cal.TwoDigitYearMax = 2099;
      CultureInfo culture = (CultureInfo) CultureInfo.CurrentCulture.Clone();
      culture.DateTimeFormat.Calendar = cal;
      Thread.CurrentThread.CurrentCulture = culture;

      Console.WriteLine("Two Digit Year Range: {0} - {1}", 
                        cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax);
      Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, null));
   }
}
// The example displays the following output:
//       Two Digit Year Range: 1930 - 2029
//       1/24/1949
//       
//       Two Digit Year Range: 2000 - 2099
//       1/24/2049
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      Dim fmt As String = "dd-MMM-yy"
      Dim value As String = "24-Jan-49"
      
      Dim cal As Calendar = CType(CultureInfo.CurrentCulture.Calendar.Clone(), Calendar)
      Console.WriteLine("Two Digit Year Range: {0} - {1}", 
                        cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax)
      
      Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, Nothing))
      Console.WriteLine()
      
      cal.TwoDigitYearMax = 2099
      Dim culture As CultureInfo = CType(CultureInfo.CurrentCulture.Clone(), CultureInfo)
      culture.DateTimeFormat.Calendar = cal
      Thread.CurrentThread.CurrentCulture = culture

      Console.WriteLine("Two Digit Year Range: {0} - {1}", 
                        cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax)
      Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, Nothing))
   End Sub
End Module
' The example displays the following output:
'       Two Digit Year Range: 1930 - 2029
'       1/24/1949
'       
'       Two Digit Year Range: 2000 - 2099
'       1/24/2049

次の例では、カスタム書式指定文字列の中に "yy" カスタム書式指定子が含まれます。The following example includes the "yy" custom format specifier in a custom format string.

DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010      
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010      

表のトップへBack to table

"yyy" カスタム書式指定子The "yyy" custom format specifier

"yyy" カスタム書式指定子は、年を 3 桁以上で表します。The "yyy" custom format specifier represents the year with a minimum of three digits. 年が 3 桁を超える場合は、それらの数字も結果に含まれます。If the year has more than three significant digits, they are included in the result string. 年が 3 桁に満たない場合は、3 桁になるまで数値が先行ゼロで埋められます。If the year has fewer than three digits, the number is padded with leading zeros to produce three digits.

注意

年が 5 桁になることがあるタイ仏暦については、この書式指定子ですべての有効桁が表示されます。For the Thai Buddhist calendar, which can have five-digit years, this format specifier displays all significant digits.

次の例では、カスタム書式指定文字列の中に "yyy" カスタム書式指定子が含まれます。The following example includes the "yyy" custom format specifier in a custom format string.

DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010      
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010      

表のトップへBack to table

"yyyy" カスタム書式指定子The "yyyy" custom format specifier

"yyyy" カスタム書式指定子は、年を 4 桁以上で表します。The "yyyy" custom format specifier represents the year with a minimum of four digits. 年が 4 桁を超える場合は、それらの数字も結果に含まれます。If the year has more than four significant digits, they are included in the result string. 年が 4 桁に満たない場合は、4 桁になるまで数値が先行ゼロで埋められます。If the year has fewer than four digits, the number is padded with leading zeros to produce four digits.

注意

年が 5 桁になることがあるタイ仏暦については、この書式指定子で 4 桁以上が表示されます。For the Thai Buddhist calendar, which can have five-digit years, this format specifier displays a minimum of four digits.

次の例では、カスタム書式指定文字列の中に "yyyy" カスタム書式指定子が含まれます。The following example includes the "yyyy" custom format specifier in a custom format string.

DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010      
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010      

表のトップへBack to table

"yyyyy" カスタム書式指定子The "yyyyy" custom format specifier

"yyyyy" カスタム書式指定子 (任意の数の "y" 指定子を追加可能) は、年を 5 桁以上で表します。The "yyyyy" custom format specifier (plus any number of additional "y" specifiers) represents the year with a minimum of five digits. 年が 5 桁を超える場合は、それらの数字も結果に含まれます。If the year has more than five significant digits, they are included in the result string. 年が 5 桁に満たない場合は、5 桁になるまで数値が先行ゼロで埋められます。If the year has fewer than five digits, the number is padded with leading zeros to produce five digits.

"y" 指定子を追加すると、"y" 指定子の数と同じ桁数になるまで数値が先行ゼロで埋められます。If there are additional "y" specifiers, the number is padded with as many leading zeros as necessary to produce the number of "y" specifiers.

次の例では、カスタム書式指定文字列の中に "yyyyy" カスタム書式指定子が含まれます。The following example includes the "yyyyy" custom format specifier in a custom format string.

DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010      
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010      
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010      

表のトップへBack to table

"z" カスタム書式指定子The "z" custom format specifier

DateTime 値で使用した場合、"z" カスタム書式指定子は、オペレーティング システムのローカル タイム ゾーンの、世界協定時刻 (UTC) を基準とした符号付きオフセット (時間単位) を表します。With DateTime values, the "z" custom format specifier represents the signed offset of the local operating system's time zone from Coordinated Universal Time (UTC), measured in hours. インスタンスの DateTime.Kind プロパティの値は反映されません。It does not reflect the value of an instance's DateTime.Kind property. そのため、DateTime 値に対して "z" 書式指定子を使用することはお勧めできません。For this reason, the "z" format specifier is not recommended for use with DateTime values.

DateTimeOffset 値で使用した場合、この書式指定子は、DateTimeOffset 値の、UTC を基準とするオフセット (時間単位) を表します。With DateTimeOffset values, this format specifier represents the DateTimeOffset value's offset from UTC in hours.

このオフセットは、常に先頭の符号と共に表示されます。The offset is always displayed with a leading sign. 正符号 (+) は UTC より時間が進んでいることを示し、負符号 (-) は UTC より時間が遅れていることを示します。A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. 1 桁のオフセットは、先行ゼロなしで書式設定されます。A single-digit offset is formatted without a leading zero.

"z" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"z" は標準の日時書式指定子として解釈され、FormatException をスローします。If the "z" format specifier is used without other custom format specifiers, it is interpreted as a standard date and time format specifier and throws a FormatException. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

次の例では、カスタム書式指定文字列の中に "z" カスタム書式指定子が含まれます。The following example includes the "z" custom format specifier in a custom format string.

DateTime date1 = DateTime.UtcNow;
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date1));
// Displays -7, -07, -07:00                     

DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0, 
                                          new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date2));
// Displays +6, +06, +06:00
Dim date1 As Date = Date.UtcNow
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date1))
' Displays -7, -07, -07:00                     

Dim date2 As New DateTimeOffset(2008, 8, 1, 0, 0, 0, _
                                New Timespan(6, 0, 0))
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date2))                                     
' Displays +6, +06, +06:00

表のトップへBack to table

"zz" カスタム書式指定子The "zz" custom format specifier

DateTime 値で使用した場合、"zz" カスタム書式指定子は、オペレーティング システムのローカル タイム ゾーンの、UTC を基準とした符号付きオフセット (時間単位) を表します。With DateTime values, the "zz" custom format specifier represents the signed offset of the local operating system's time zone from UTC, measured in hours. インスタンスの DateTime.Kind プロパティの値は反映されません。It does not reflect the value of an instance's DateTime.Kind property. そのため、DateTime 値に対して "zz" 書式指定子を使用することはお勧めできません。For this reason, the "zz" format specifier is not recommended for use with DateTime values.

DateTimeOffset 値で使用した場合、この書式指定子は、DateTimeOffset 値の、UTC を基準とするオフセット (時間単位) を表します。With DateTimeOffset values, this format specifier represents the DateTimeOffset value's offset from UTC in hours.

このオフセットは、常に先頭の符号と共に表示されます。The offset is always displayed with a leading sign. 正符号 (+) は UTC より時間が進んでいることを示し、負符号 (-) は UTC より時間が遅れていることを示します。A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. 1 桁のオフセットは、先行ゼロ付きで書式設定されます。A single-digit offset is formatted with a leading zero.

次の例では、カスタム書式指定文字列の中に "zz" カスタム書式指定子が含まれます。The following example includes the "zz" custom format specifier in a custom format string.

DateTime date1 = DateTime.UtcNow;
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date1));
// Displays -7, -07, -07:00                     

DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0, 
                                          new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date2));
// Displays +6, +06, +06:00
Dim date1 As Date = Date.UtcNow
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date1))
' Displays -7, -07, -07:00                     

Dim date2 As New DateTimeOffset(2008, 8, 1, 0, 0, 0, _
                                New Timespan(6, 0, 0))
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date2))                                     
' Displays +6, +06, +06:00

表のトップへBack to table

"zzz" カスタム書式指定子The "zzz" custom format specifier

DateTime 値で使用した場合、"zzz" カスタム書式指定子は、オペレーティング システムのローカル タイム ゾーンの、UTC を基準とした符号付きオフセット (時間および分単位) を表します。With DateTime values, the "zzz" custom format specifier represents the signed offset of the local operating system's time zone from UTC, measured in hours and minutes. インスタンスの DateTime.Kind プロパティの値は反映されません。It does not reflect the value of an instance's DateTime.Kind property. そのため、DateTime 値に対して "zzz" 書式指定子を使用することはお勧めできません。For this reason, the "zzz" format specifier is not recommended for use with DateTime values.

DateTimeOffset 値で使用した場合、この書式指定子は、DateTimeOffset 値の、UTC を基準とするオフセット (時間および分単位) を表します。With DateTimeOffset values, this format specifier represents the DateTimeOffset value's offset from UTC in hours and minutes.

このオフセットは、常に先頭の符号と共に表示されます。The offset is always displayed with a leading sign. 正符号 (+) は UTC より時間が進んでいることを示し、負符号 (-) は UTC より時間が遅れていることを示します。A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. 1 桁のオフセットは、先行ゼロ付きで書式設定されます。A single-digit offset is formatted with a leading zero.

次の例では、カスタム書式指定文字列の中に "zzz" カスタム書式指定子が含まれます。The following example includes the "zzz" custom format specifier in a custom format string.

DateTime date1 = DateTime.UtcNow;
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date1));
// Displays -7, -07, -07:00                     

DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0, 
                                          new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date2));
// Displays +6, +06, +06:00
Dim date1 As Date = Date.UtcNow
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date1))
' Displays -7, -07, -07:00                     

Dim date2 As New DateTimeOffset(2008, 8, 1, 0, 0, 0, _
                                New Timespan(6, 0, 0))
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date2))                                     
' Displays +6, +06, +06:00

表のトップへBack to table

":" カスタム書式指定子The ":" custom format specifier

":" カスタム書式指定子は、時、分、および秒を区別するための時刻の区切り記号を表します。The ":" custom format specifier represents the time separator, which is used to differentiate hours, minutes, and seconds. ローカライズされた適切な時刻の区切り記号は、現在のカルチャまたは特定のカルチャの DateTimeFormatInfo.TimeSeparator プロパティから取得されます。The appropriate localized time separator is retrieved from the DateTimeFormatInfo.TimeSeparator property of the current or specified culture.

注意

特定の日付と時刻の文字列について時刻の区切り記号を変更するには、リテラル文字列の区切り記号内に区切り記号を指定します。To change the time separator for a particular date and time string, specify the separator character within a literal string delimiter. たとえば、カスタム書式指定文字列 hh'_'dd'_'ss は、常に時刻の区切り記号として "_" (アンダースコア) が使用される結果文字列を生成します。For example, the custom format string hh'_'dd'_'ss produces a result string in which "_" (an underscore) is always used as the time separator. カルチャのすべての日付について時刻の区切り記号を変更するには、現在のカルチャの DateTimeFormatInfo.TimeSeparator プロパティ値を変更するか、DateTimeFormatInfo オブジェクトのインスタンスを作成し、その TimeSeparator プロパティに文字を割り当てて、IFormatProvider パラメーターを含む書式設定メソッドのオーバーロードを呼び出します。To change the time separator for all dates for a culture, either change the value of the DateTimeFormatInfo.TimeSeparator property of the current culture, or instantiate a DateTimeFormatInfo object, assign the character to its TimeSeparator property, and call an overload of the formatting method that includes an IFormatProvider parameter.

":" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、":" は標準の日時書式指定子として解釈され、FormatException をスローします。If the ":" format specifier is used without other custom format specifiers, it is interpreted as a standard date and time format specifier and throws a FormatException. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

表のトップへBack to table

"/" カスタム書式指定子The "/" custom format specifier

"/" カスタム書式指定子は、年、月、および日を区別するための日付の区切り記号を表します。The "/" custom format specifier represents the date separator, which is used to differentiate years, months, and days. ローカライズされた適切な日付の区切り記号は、現在のカルチャまたは特定のカルチャの DateTimeFormatInfo.DateSeparator プロパティから取得されます。The appropriate localized date separator is retrieved from the DateTimeFormatInfo.DateSeparator property of the current or specified culture.

注意

特定の日付と時刻の文字列について日付の区切り記号を変更するには、リテラル文字列の区切り記号内に区切り記号を指定します。To change the date separator for a particular date and time string, specify the separator character within a literal string delimiter. たとえば、カスタム書式指定文字列 mm'/'dd'/'yyyy は、常に日付の区切り記号として "/" が使用される結果文字列を生成します。For example, the custom format string mm'/'dd'/'yyyy produces a result string in which "/" is always used as the date separator. カルチャのすべての日付について日付の区切り記号を変更するには、現在のカルチャの DateTimeFormatInfo.DateSeparator プロパティ値を変更するか、DateTimeFormatInfo オブジェクトのインスタンスを作成し、その DateSeparator プロパティに文字を割り当てて、IFormatProvider パラメーターを含む書式設定メソッドのオーバーロードを呼び出します。To change the date separator for all dates for a culture, either change the value of the DateTimeFormatInfo.DateSeparator property of the current culture, or instantiate a DateTimeFormatInfo object, assign the character to its DateSeparator property, and call an overload of the formatting method that includes an IFormatProvider parameter.

"/" 書式指定子が単独で使用され、その他のカスタム書式指定子がない場合、"/" は標準の日時書式指定子として解釈され、FormatException をスローします。If the "/" format specifier is used without other custom format specifiers, it is interpreted as a standard date and time format specifier and throws a FormatException. 単一の書式指定子を使用する方法の詳細については、このトピックで後述する「単一のカスタム書式指定子の使用」を参照してください。For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this topic.

表のトップへBack to table

文字リテラルCharacter literals

カスタム日時書式指定文字列の次の文字は予約済みで、常に書式設定文字として解釈されます。または "、'、/、および \ の場合は、特殊文字として解釈されます。The following characters in a custom date and time format string are reserved and are always interpreted as formatting characters or, in the case of ", ', /, and \, as special characters.

FF HH KK MM dd
ff Gg hh mm ss
tt Yy zz % ::
/ "" '' |

その他の文字はすべて、文字リテラルとして常に解釈され、書式設定操作では、変更されずに結果の文字列に含まれます。All other characters are always interpreted as character literals and, in a formatting operation, are included in the result string unchanged. 解析操作では、これらは入力文字列の文字と完全に一致している必要があります。比較では大文字小文字を区別します。In a parsing operation, they must match the characters in the input string exactly; the comparison is case-sensitive.

次の例には、書式指定文字列でローカル タイム ゾーンを表すため、リテラル文字 "PST" (太平洋標準時) と "PDT" (太平洋夏時間)が含まれています。The following example includes the literal characters "PST" (for Pacific Standard Time) and "PDT" (for Pacific Daylight Time) to represent the local time zone in a format string. 文字列は結果の文字列に含まれ、ローカル タイム ゾーン文字列を含む文字列も正常に解析することに注意してください。Note that the string is included in the result string, and that a string that includes the local time zone string also parses successfully.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      String[] formats = { "dd MMM yyyy hh:mm tt PST", 
                           "dd MMM yyyy hh:mm tt PDT" };
      var dat = new DateTime(2016, 8, 18, 16, 50, 0);
      // Display the result string. 
      Console.WriteLine(dat.ToString(formats[1]));
      
      // Parse a string. 
      String value = "25 Dec 2016 12:00 pm PST";
      DateTime newDate;
      if (DateTime.TryParseExact(value, formats, null, 
                                 DateTimeStyles.None, out newDate)) 
         Console.WriteLine(newDate);
      else
         Console.WriteLine("Unable to parse '{0}'", value);
   }
}
// The example displays the following output:
//       18 Aug 2016 04:50 PM PDT
//       12/25/2016 12:00:00 PM
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim formats() As String = { "dd MMM yyyy hh:mm tt PST", 
                                  "dd MMM yyyy hh:mm tt PDT" }
      Dim dat As New Date(2016, 8, 18, 16, 50, 0)
      ' Display the result string. 
      Console.WriteLine(dat.ToString(formats(1)))
      
      ' Parse a string. 
      Dim value As String = "25 Dec 2016 12:00 pm PST"
      Dim newDate As Date
      If Date.TryParseExact(value, formats, Nothing, 
                            DateTimeStyles.None, newDate) Then 
         Console.WriteLine(newDate)
      Else
         Console.WriteLine("Unable to parse '{0}'", value)
      End If                               
   End Sub
End Module
' The example displays the following output:
'       18 Aug 2016 04:50 PM PDT
'       12/25/2016 12:00:00 PM

文字が結果の文字列に含まれるように、または入力文字列で正常に解析されるように、文字が予約文字としてではなく、リテラル文字として解釈されることを示すには、次の 2 つの方法があります。There are two ways to indicate that characters are to be interpreted as literal characters and not as reserve characters, so that they can be included in a result string or successfully parsed in an input string:

  • 予約済みの各文字をエスケープします。By escaping each reserved character. 詳細については、「エスケープ文字の使用」を参照してください。For more information, see Using the Escape Character.

    次の例には、書式指定文字列でローカル タイム ゾーンを表すため、リテラル文字 "pst"(太平洋標準時間) が含まれています。The following example includes the literal characters "pst" (for Pacific Standard time) to represent the local time zone in a format string. "s" と "t" はどちらもカスタム書式指定文字列であるため、どちらの文字も文字リテラルとして解釈されるにはエスケープする必要があります。Because both "s" and "t" are custom format strings, both characters must be escaped to be interpreted as character literals.

    using System;
    using System.Globalization;
    
    public class Example
    {
       public static void Main()
       {
          String format = "dd MMM yyyy hh:mm tt p\\s\\t";
          var dat = new DateTime(2016, 8, 18, 16, 50, 0);
          // Display the result string. 
          Console.WriteLine(dat.ToString(format));
          
          // Parse a string. 
          String value = "25 Dec 2016 12:00 pm pst";
          DateTime newDate;
          if (DateTime.TryParseExact(value, format, null, 
                                     DateTimeStyles.None, out newDate)) 
             Console.WriteLine(newDate);
          else
             Console.WriteLine("Unable to parse '{0}'", value);
       }
    }
    // The example displays the following output:
    //       18 Aug 2016 04:50 PM PDT
    //       12/25/2016 12:00:00 PM
    
    Imports System.Globalization
    
    Module Example
       Public Sub Main()
          Dim fmt As String = "dd MMM yyyy hh:mm tt p\s\t" 
          Dim dat As New Date(2016, 8, 18, 16, 50, 0)
          ' Display the result string. 
          Console.WriteLine(dat.ToString(fmt))
          
          ' Parse a string. 
          Dim value As String = "25 Dec 2016 12:00 pm pst"
          Dim newDate As Date
          If Date.TryParseExact(value, fmt, Nothing, 
                                DateTimeStyles.None, newDate) Then 
             Console.WriteLine(newDate)
          Else
             Console.WriteLine("Unable to parse '{0}'", value)
          End If                               
       End Sub
    End Module
    ' The example displays the following output:
    '       18 Aug 2016 04:50 PM pst
    '       12/25/2016 12:00:00 PM
    
  • リテラル文字列全体を引用符またはアポストロフィで囲みます。By enclosing the entire literal string in quotation marks or apostrophes. 次の例は、前の例と似ていますが、区切られた文字列全体が文字リテラルとして解釈されることを示すため、"pst" が引用符で囲まれている点が異なります。The following example is like the previous one, except that "pst" is enclosed in quotation marks to indicate that the entire delimited string should be interpreted as character literals.

    using System;
    using System.Globalization;
    
    public class Example
    {
       public static void Main()
       {
          String format = "dd MMM yyyy hh:mm tt \"pst\"";
          var dat = new DateTime(2016, 8, 18, 16, 50, 0);
          // Display the result string. 
          Console.WriteLine(dat.ToString(format));
          
          // Parse a string. 
          String value = "25 Dec 2016 12:00 pm pst";
          DateTime newDate;
          if (DateTime.TryParseExact(value, format, null, 
                                     DateTimeStyles.None, out newDate)) 
             Console.WriteLine(newDate);
          else
             Console.WriteLine("Unable to parse '{0}'", value);
       }
    }
    // The example displays the following output:
    //       18 Aug 2016 04:50 PM PDT
    //       12/25/2016 12:00:00 PM
    
    Imports System.Globalization
    
    Module Example
       Public Sub Main()
          Dim fmt As String = "dd MMM yyyy hh:mm tt ""pst"""  
          Dim dat As New Date(2016, 8, 18, 16, 50, 0)
          ' Display the result string. 
          Console.WriteLine(dat.ToString(fmt))
          
          ' Parse a string. 
          Dim value As String = "25 Dec 2016 12:00 pm pst"
          Dim newDate As Date
          If Date.TryParseExact(value, fmt, Nothing, 
                                DateTimeStyles.None, newDate) Then 
             Console.WriteLine(newDate)
          Else
             Console.WriteLine("Unable to parse '{0}'", value)
          End If                               
       End Sub
    End Module
    ' The example displays the following output:
    '       18 Aug 2016 04:50 PM pst
    '       12/25/2016 12:00:00 PM
    

メモNotes

単一のカスタム書式指定子の使用Using single custom format specifiers

カスタム日時書式指定文字列は、複数の文字で構成されます。A custom date and time format string consists of two or more characters. 日時書式指定メソッドでは、1 文字の文字列が標準の日時書式指定文字列として解釈されます。Date and time formatting methods interpret any single-character string as a standard date and time format string. 文字が有効な書式指定子として認識されない場合は FormatException がスローされます。If they do not recognize the character as a valid format specifier, they throw a FormatException. たとえば、"h" 指定子のみで構成される書式指定文字列は、標準の日時書式指定文字列として解釈されます。For example, a format string that consists only of the specifier "h" is interpreted as a standard date and time format string. ただし、この場合では、"h" という標準の日時書式指定子が存在しないため、例外がスローされます。However, in this particular case, an exception is thrown because there is no "h" standard date and timeformat specifier.

カスタム日時書式指定子のいずれかを書式指定文字列内の唯一の指定子として使用するには (つまり、"d"、"f"、"F"、"g"、"h"、"H"、"K"、"m"、"M"、"s"、"t"、"y"、"z"、":"、"/" のいずれかのカスタム書式指定子を単体で使用するには)、指定子の前または後に空白を挿入するか、または単一のカスタム日時指定子の前にパーセント ("%") 書式指定子を挿入します。To use any of the custom date and time format specifiers as the only specifier in a format string (that is, to use the "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":", or "/" custom format specifier by itself), include a space before or after the specifier, or include a percent ("%") format specifier before the single custom date and time specifier.

たとえば、"%h" は、現在の日時値が表す時要素を表示するカスタム日時書式指定文字列として解釈されます。For example, "%h" is interpreted as a custom date and time format string that displays the hour represented by the current date and time value. また、" h" または "h " の各書式指定文字列も使用できますが、書式設定後の文字列に時間と共に空白が挿入されます。You can also use the " h" or "h " format string, although this includes a space in the result string along with the hour. これらの 3 つの書式指定文字列の例を次に示します。The following example illustrates these three format strings.

DateTime dat1 = new DateTime(2009, 6, 15, 13, 45, 0);

Console.WriteLine("'{0:%h}'", dat1);
Console.WriteLine("'{0: h}'", dat1);
Console.WriteLine("'{0:h }'", dat1);
// The example displays the following output:
//       '1'
//       ' 1'
//       '1 '
Dim dat1 As Date = #6/15/2009 1:45PM#

Console.WriteLine("'{0:%h}'", dat1)
Console.WriteLine("'{0: h}'", dat1)
Console.WriteLine("'{0:h }'", dat1)
' The example displays the following output:
'       '1'
'       ' 1'
'       '1 '

エスケープ文字の使用Using the Escape Character

書式指定文字列内の "d"、"f"、"F"、"g"、"h"、"H"、"K"、"m"、"M"、"s"、"t"、"y"、"z"、":"、"/" の各文字は、リテラル文字ではなくカスタム書式指定子として解釈されます。The "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":", or "/" characters in a format string are interpreted as custom format specifiers rather than as literal characters. 文字が書式指定子として解釈されないようにするには、その文字の前に、エスケープ文字の円記号 (\) を付けます。To prevent a character from being interpreted as a format specifier, you can precede it with a backslash (\), which is the escape character. エスケープ文字は、その後に続く文字が、そのまま結果の文字列に含める必要がある文字リテラルであることを示します。The escape character signifies that the following character is a character literal that should be included in the result string unchanged.

結果の文字列に円記号を含める場合は、円記号をもう 1 つ付加して、円記号自体をエスケープする必要があります (\\)。To include a backslash in a result string, you must escape it with another backslash (\\).

注意

C++ コンパイラや C# コンパイラなど、一部のコンパイラでは、同様に、1 つの円記号がエスケープ文字として解釈されることがあります。Some compilers, such as the C++ and C# compilers, may also interpret a single backslash character as an escape character. 書式設定時に文字列が正しく解釈されるようにするには、C# では、逐語的文字列リテラル文字 (@ 文字) を文字列の前に使用します。また、C# および C++ では、円記号の前にもう 1 つ円記号を付ける方法もあります。To ensure that a string is interpreted correctly when formatting, you can use the verbatim string literal character (the @ character) before the string in C#, or add another backslash character before each backslash in C# and C++. 両方の方法を次の C# の例に示します。The following C# example illustrates both approaches.

次の例では、エスケープ文字を使用して、書式設定操作で "h" と "m" の各文字が書式指定子として解釈されないようにします。The following example uses the escape character to prevent the formatting operation from interpreting the "h" and "m" characters as format specifiers.

DateTime date = new DateTime(2009, 06, 15, 13, 45, 30, 90);
string fmt1 = "h \\h m \\m";
string fmt2 = @"h \h m \m";

Console.WriteLine("{0} ({1}) -> {2}", date, fmt1, date.ToString(fmt1));
Console.WriteLine("{0} ({1}) -> {2}", date, fmt2, date.ToString(fmt2));
// The example displays the following output:
//       6/15/2009 1:45:30 PM (h \h m \m) -> 1 h 45 m
//       6/15/2009 1:45:30 PM (h \h m \m) -> 1 h 45 m      
Dim date1 As Date = #6/15/2009 13:45#
Dim fmt As String = "h \h m \m"

Console.WriteLine("{0} ({1}) -> {2}", date1, fmt, date1.ToString(fmt))
' The example displays the following output:
'       6/15/2009 1:45:00 PM (h \h m \m) -> 1 h 45 m      

コントロール パネルの設定Control Panel settings

コントロール パネルの [地域と言語のオプション] の設定は、各種のカスタム日時書式指定子を使った書式設定操作によって生成される結果の文字列に影響します。The Regional and Language Options settings in Control Panel influence the result string produced by a formatting operation that includes many of the custom date and time format specifiers. これらの設定は、書式設定の制御に使用される値を提供する現在のスレッド カルチャに関連付けられた DateTimeFormatInfo オブジェクトを初期化するために使用されます。These settings are used to initialize the DateTimeFormatInfo object associated with the current thread culture, which provides values used to govern formatting. コンピューターで使用する設定が異なる場合は、生成される文字列も異なります。Computers that use different settings generate different result strings.

また、CultureInfo.CultureInfo(String) コンストラクターを使用して、現在のシステム カルチャと同じカルチャを表す新しい CultureInfo オブジェクトをインスタンス化した場合、コントロール パネルの [地域と言語のオプション] 項目で設定されたカスタマイズが新しい CultureInfo オブジェクトに適用されます。In addition, if you use the CultureInfo.CultureInfo(String) constructor to instantiate a new CultureInfo object that represents the same culture as the current system culture, any customizations established by the Regional and Language Options item in Control Panel will be applied to the new CultureInfo object. CultureInfo.CultureInfo(String, Boolean) コンストラクターを使用すると、システムに対するカスタマイズが反映されない CultureInfo オブジェクトを作成できます。You can use the CultureInfo.CultureInfo(String, Boolean) constructor to create a CultureInfo object that does not reflect a system's customizations.

DateTimeFormatInfo のプロパティDateTimeFormatInfo properties

書式設定は、現在の DateTimeFormatInfo オブジェクトのプロパティの影響を受けます。このオブジェクトは、現在のスレッド カルチャによって暗黙的に指定されるか、または書式設定を実行するメソッドの IFormatProvider パラメーターによって明示的に指定されます。Formatting is influenced by properties of the current DateTimeFormatInfo object, which is provided implicitly by the current thread culture or explicitly by the IFormatProvider parameter of the method that invokes formatting. IFormatProvider パラメーターには、カルチャを表す CultureInfo オブジェクト、または DateTimeFormatInfo オブジェクトを指定します。For the IFormatProvider parameter, you should specify a CultureInfo object, which represents a culture, or a DateTimeFormatInfo object.

各種のカスタム日時書式指定子によって生成される書式設定後の文字列も、現在の DateTimeFormatInfo オブジェクトのプロパティに依存します。The result string produced by many of the custom date and time format specifiers also depends on properties of the current DateTimeFormatInfo object. カスタム日時書式指定子によって生成される結果は、対応する DateTimeFormatInfo プロパティを変更することによって変えることができます。Your application can change the result produced by some custom date and time format specifiers by changing the corresponding DateTimeFormatInfo property. たとえば、"ddd" 書式指定子を使用した場合、書式設定後の文字列には、AbbreviatedDayNames 文字列配列に指定されている曜日の省略名が追加されます。For example, the "ddd" format specifier adds an abbreviated weekday name found in the AbbreviatedDayNames string array to the result string. 同様に、"MMMM" 書式指定子を使用した場合、書式設定後の文字列には、MonthNames 文字列配列に指定されている月の正式名が追加されます。Similarly, the "MMMM" format specifier adds a full month name found in the MonthNames string array to the result string.

関連項目See also