Niestandardowe ciągi formatujące datę i godzinę

Ciąg formatu daty i czasu definiuje tekstową reprezentację wartości lub, która DateTime DateTimeOffset jest skutkiem operacji formatowania. Może także definiować reprezentację wartości daty i godziny, która jest wymagana w operacji analizowania składni w celu pomyślnego przekonwertowania ciągu na datę i godzinę. Ciąg formatu niestandardowego składa się z co najmniej jednego specyfikatora niestandardowego formatu daty i godziny. Każdy ciąg, który nie jest standardowym ciągiem formatu daty i czasu, jest interpretowany jako ciąg niestandardowego formatu daty i czasu.

Porada

Możesz pobrać narzędzie formatowania, aplikację .NET Core Windows Forms, która umożliwia stosowanie ciągów formatu do wartości liczbowych lub wartości daty i czasu oraz wyświetlanie ciągu wynikowego. Kod źródłowy jest dostępny dla języka C# i Visual Basic.

Niestandardowe ciągi formatu daty i czasu mogą być używane z DateTime wartościami DateTimeOffset i .

Uwaga

Niektóre przykłady języka C# w tym artykule są uruchamiane w Try.NET inline code runner i plac zabaw. Wybierz przycisk Uruchom, aby uruchomić przykład w oknie interakcyjnym. Po wykonaniu kodu można go zmodyfikować i uruchomić zmodyfikowany kod, wybierając polecenie Uruchom ponownie. Zmodyfikowany kod jest uruchamiany w oknie interakcyjnym lub, jeśli kompilacja nie powiedzie się, interaktywne okno wyświetla wszystkie komunikaty o błędach kompilatora C#.

Lokalna strefa czasowa Try.NET wbudowany monit i plac zabaw to Skoordynowany czas uniwersalny lub UTC. Może to mieć wpływ na zachowanie i DateTimedane DateTimeOffsetwyjściowe TimeZoneInfo przykładów, które ilustrują , i typy i ich elementy członkowskie.

W operacjach formatowania niestandardowe ciągi formatu daty i czasu mogą być używane z metodą wystąpienia daty i czasu lub z metodą, która ToString obsługuje formatowanie złożone. W poniższym przykładzie pokazano oba te zastosowania.

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

W operacjach analizowania niestandardowe ciągi formatu daty i czasu mogą być używane z DateTime.ParseExact metodami , DateTime.TryParseExact , i DateTimeOffset.ParseExact DateTimeOffset.TryParseExact . Te metody wymagają, aby ciąg wejściowy był dokładnie zgodny z określonym wzorcem, aby operacja analizy zakończyła się pomyślnie. Poniższy przykład ilustruje wywołanie metody w celu analizowania daty, która musi zawierać dzień, miesiąc DateTimeOffset.ParseExact(String, String, IFormatProvider) i dwucyfrowy rok.

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.

W poniższej tabeli opisano specyfikatory niestandardowego formatu daty i godziny oraz pokazano ciąg wynikowy utworzony przez każdy specyfikator formatu. Domyślnie ciągi wynikowe odzwierciedlają konwencje formatowania kultury en-US. Jeśli określony specyfikator formatu generuje zlokalizowany ciąg wynikowy, w przykładzie wymieniono też kulturę, której dotyczy ciąg wynikowy. Aby uzyskać więcej informacji na temat używania niestandardowych ciągów formatu daty i godziny, zobacz sekcję Uwagi.

Specyfikator formatu Opis Przykłady
„d” Dzień miesiąca z zakresu od 1 do 31.

Więcej informacji: Specyfikator formatu niestandardowego "d".
2009-06-01T13:45:30 -> 1

2009-06-15T13:45:30 -> 15
„dd” Dzień miesiąca z zakresu od 01 do 31.

Więcej informacji: Specyfikator formatu niestandardowego "dd".
2009-06-01T13:45:30 -> 01

2009-06-15T13:45:30 -> 15
„ddd” Skrócona nazwa dnia tygodnia.

Więcej informacji: Specyfikator formatu niestandardowego "ddd".
2009-06-15T13:45:30 -> Mon (en-US)

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

2009-06-15T13:45:30 -> lun. (fr-FR)
„dddd” Pełna nazwa dnia tygodnia.

Więcej informacji: Specyfikator formatu niestandardowego "dddd".
2009-06-15T13:45:30 -> poniedziałek (en-US)

2009-06-15T13:45:30 -> кккик (ru-RU)

2009-06-15T13:45:30 -> przejmij (fr-FR)
„f” Liczba dziesiątych części sekundy w wartości daty i godziny.

Więcej informacji: Specyfikator formatu niestandardowego "f".
2009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.05 -> 0
„ff” Liczba setnych części sekundy w wartości daty i godziny.

Więcej informacji: Specyfikator formatu niestandardowego "ff".
2009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> 00
„fff” Liczba milisekund w wartości daty i godziny.

Więcej informacji: Specyfikator formatu niestandardowego "fff".
15.06.2009 13:45:30.617 -> 617

15.06.2009 13:45:30.0005 -> 000
„ffff” Liczba dziesięciotysięcznych części sekundy w wartości daty i godziny.

Więcej informacji: Specyfikator formatu niestandardowego "ffff".
2009-06-15T13:45:30.6175000 -> 6175

2009-06-15T13:45:30.0000500 -> 0000
„fffff” Liczba stutysięcznych części sekundy w wartości daty i godziny.

Więcej informacji: Specyfikator formatu niestandardowego "fffff".
2009-06-15T13:45:30.6175400 -> 61754

15.06.2009 13:45:30.000005 -> 00000
„ffffff” Liczba milionowych części sekundy w wartości daty i godziny.

Więcej informacji: Specyfikator formatu niestandardowego "ffffff".
2009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> 000000
„fffffff” Liczba dziesięciomilionowych części sekundy w wartości daty i godziny.

Więcej informacji: Specyfikator formatu niestandardowego "fffffff".
2009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 0001150
„F” Jeśli wartość jest różna od zera, liczba dziesiątych części sekundy w wartości daty i godziny.

Więcej informacji: Specyfikator formatu niestandardowego "F".
2009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.0500000 -> (brak danych wyjściowych)
„FF” Jeśli wartość jest różna od zera, liczba setnych części sekundy w wartości daty i godziny.

Więcej informacji: Specyfikator formatu niestandardowego "FF".
2009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> (brak danych wyjściowych)
„FFF” Jeśli wartość jest różna od zera, liczba milisekund w wartości daty i godziny.

Więcej informacji: Specyfikator formatu niestandardowego "FFF".
2009-06-15T13:45:30.6170000 -> 617

2009-06-15T13:45:30.0005000 -> (brak danych wyjściowych)
„FFFF” Jeśli wartość jest różna od zera, liczba dziesięciotysięcznych części sekundy w wartości daty i godziny.

Więcej informacji: Specyfikator formatu niestandardowego "FFFF".
2009-06-15T13:45:30.5275000 -> 5275

2009-06-15T13:45:30.0000500 -> (brak danych wyjściowych)
„FFFFF” Jeśli wartość jest różna od zera, liczba stutysięcznych części sekundy w wartości daty i godziny.

Więcej informacji: Specyfikator formatu niestandardowego "FFFFF".
2009-06-15T13:45:30.6175400 -> 61754

2009-06-15T13:45:30.0000050 -> (brak danych wyjściowych)
„FFFFFF” Jeśli wartość jest różna od zera, liczba milionowych części sekundy w wartości daty i godziny.

Więcej informacji: Specyfikator formatu niestandardowego "FFFFFF".
2009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> (brak danych wyjściowych)
„FFFFFFF” Jeśli wartość jest różna od zera, liczba dziesięciomilionowych części sekundy w wartości daty i godziny.

Więcej informacji: Specyfikator formatu niestandardowego "FFFFFFF".
2009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 000115
„g”, „gg” Okres lub era.

Więcej informacji: Specyfikator formatu niestandardowego "g" lub "gg".
2009-06-15T13:45:30.6170000 -> A.D.
„h” Godzina; używany jest zegar 12-godzinny (wartości od 1 do 12).

Więcej informacji: Specyfikator formatu niestandardowego "h".
2009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 1
„hh” Godzina; używany jest zegar 12-godzinny (wartości od 01 do 12).

Więcej informacji: Specyfikator formatu niestandardowego "hh".
2009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 01
„H” Godzina z zegarem 24-godzinnym z 0 do 23.

Więcej informacji: Specyfikator formatu niestandardowego "H".
2009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 13
„HH” Godzina; używany jest zegar 24-godzinny (wartości od 00 do 23).

Więcej informacji: Specyfikator formatu niestandardowego "HH".
2009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 13
„K” Informacje o strefie czasowej.

Więcej informacji: Specyfikator formatu niestandardowego "K".
Z DateTime wartościami:

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

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

2009-06-15T13:45:30, Kind Local -> -07:00 (zależy od ustawień komputera lokalnego)

Z DateTimeOffset wartościami:

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

2009-06-15T08:45:30+00:00 --> +00:00
„m” Minuta; wartości z zakresu od 0 do 59.

Więcej informacji: Specyfikator formatu niestandardowego "m".
2009-06-15T01:09:30 -> 9

2009-06-15T13:29:30 -> 29
„mm” Minuta; wartości z zakresu od 00 do 59.

Więcej informacji: Specyfikator formatu niestandardowego "mm".
2009-06-15T01:09:30 -> 09

2009-06-15T01:45:30 -> 45
„M” Miesiąc; wartości z zakresu od 1 do 12.

Więcej informacji: Specyfikator formatu niestandardowego "M".
2009-06-15T13:45:30 -> 6
„MM” Miesiąc; wartości z zakresu od 01 do 12.

Więcej informacji: Specyfikator formatu niestandardowego "MM".
2009-06-15T13:45:30 -> 06
„MMM” Skrócona nazwa miesiąca.

Więcej informacji: Specyfikator formatu niestandardowego "MMM".
2009-06-15T13:45:30 -> Jun (en-US)

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

2009-06-15T13:45:30 -> Jun (zu-ZA)
„MMMM” Pełna nazwa miesiąca.

Więcej informacji: Specyfikator formatu niestandardowego "MMMM".
2009-06-15T13:45:30 -> june (en-US)

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

2009-06-15T13:45:30 -> uJuni (zu-ZA)
„s” Sekunda; wartości z zakresu od 0 do 59.

Więcej informacji: Specyfikator formatu niestandardowego "s".
2009-06-15T13:45:09 -> 9
„ss” Sekunda; wartości z zakresu od 00 do 59.

Więcej informacji: Specyfikator formatu niestandardowego "ss".
2009-06-15T13:45:09 -> 09
„t” Pierwszy znak oznaczenia AM/PM.

Więcej informacji: Specyfikator formatu niestandardowego "t".
2009-06-15T13:45:30 -> P (en-US)

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

2009-06-15T13:45:30 -> (fr-FR)
„tt” Oznaczenie AM/PM.

Więcej informacji: Specyfikator formatu niestandardowego "tt".
2009-06-15T13:45:30 -> PM (en-US)

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

2009-06-15T13:45:30 -> (fr-FR)
„y” Rok; wartości z zakresu od 0 do 99.

Więcej informacji: Specyfikator formatu niestandardowego "y".
0001-01-01T00:00:00 -> 1

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

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

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

2019-06-15T13:45:30 -> 19
„yy” Rok; wartości z zakresu od 00 do 99.

Więcej informacji: Specyfikator formatu niestandardowego "yy".
0001-01-01T00:00:00 -> 01

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

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

2019-06-15T13:45:30 -> 19
„yyy” Rok; co najmniej trzy cyfry.

Więcej informacji: Specyfikator formatu niestandardowego "yyy".
0001-01-01T00:00:00 -> 001

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

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

2009-06-15T13:45:30 -> 2009
„yyyy” Rok jako liczba czterocyfrowa.

Więcej informacji: Specyfikator formatu niestandardowego "yyyy".
0001-01-01T00:00:00 -> 0001

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

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

2009-06-15T13:45:30 -> 2009
„yyyyy” Rok jako liczba pięciocyfrowa.

Więcej informacji: Specyfikator formatu niestandardowego "yyyyy".
0001-01-01T00:00:00 -> 00001

2009-06-15T13:45:30 -> 02009
„z” Przesunięcie godzinowe względem czasu UTC, bez zer wiodących.

Więcej informacji: Specyfikator formatu niestandardowego "z".
2009-06-15T13:45:30-07:00 -> -7
„zz” Przesunięcie godzinowe względem czasu UTC, z zerem wiodącym dla wartości jednocyfrowych.

Więcej informacji: Specyfikator formatu niestandardowego "zz".
2009-06-15T13:45:30-07:00 -> -07
„zzz” Godzinowe i minutowe przesunięcie względem czasu UTC.

Więcej informacji: Specyfikator formatu niestandardowego "zzz".
2009-06-15T13:45:30-07:00 -> -07:00
":" Separator godziny.

Więcej informacji: Specyfikator formatu niestandardowego ":".
2009-06-15T13:45:30 -> : (en-US)

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

2009-06-15T13:45:30 -> : (ja-JP)
"/" Separator daty.

Więcej informacji: Specyfikator formatu niestandardowego "/".
2009-06-15T13:45:30 -> / (en-US)

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

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

'string'
Ogranicznik ciągu literału.

Więcej informacji: Literały znaków.
2009-06-15T13:45:30 ("arr:" h:m t) -> arr: 1:45 P

2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P
% Definiuje następujący znak jako specyfikator formatu niestandardowego.

Więcej informacji: Using Single Custom Format Specifiers (Używaniespecyfikatorów formatu niestandardowego pojedynczego).
2009-06-15T13:45:30 (%h) -> 1
\ Znak ucieczki.

Więcej informacji: Literały znaków i Używanie znaku ucieczki.
2009-06-15T13:45:30 (h \h) -> 1 godz.
Jakikolwiek inny znak Znak jest kopiowany do ciągu wynikowego bez zmian.

Więcej informacji: Literały znaków.
2009-06-15T01:45:30 (arr hh:mm t) -> arr 01:45 A

W poniższych sekcjach przedstawiono dodatkowe informacje dotyczące poszczególnych specyfikatorów niestandardowego formatu daty i godziny. O ile nie określono inaczej, każdy specyfikator generuje identyczną reprezentację ciągu niezależnie od tego, czy jest on używany z DateTime wartością, czy DateTimeOffset z wartością.

Specyfikator formatu "d" dnia

Specyfikator formatu niestandardowego "d"

Specyfikator formatu niestandardowego „d” oznacza dzień miesiąca w postaci liczby z zakresu od 1 do 31. Dzień oznaczony jedną cyfrą jest formatowany bez zera wiodącego.

Jeśli specyfikator formatu "d" jest używany bez innych specyfikatorów formatu niestandardowego, będzie interpretowany jako specyfikator standardowego formatu daty i czasu "d". Aby uzyskać więcej informacji na temat używania pojedynczego specyfikatora formatu, zobacz Using Single Custom Format Specifiers (Używanie specyfikatorów formatu niestandardowego pojedynczego) w dalszej części tego artykułu.

W poniższym przykładzie specyfikator formatu niestandardowego „d” jest używany w kilku ciągach formatu.

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                                                

Powrót do tabeli

Specyfikator formatu niestandardowego "dd"

Ciąg formatu niestandardowego „dd” przedstawia dzień miesiąca w postaci liczby z zakresu od 01 do 31. Dzień oznaczony jedną cyfrą jest formatowany z zerem wiodącym.

W poniższym przykładzie specyfikator formatu niestandardowego „dd” jest używany w ciągu formatu niestandardowego.

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

Powrót do tabeli

Specyfikator formatu niestandardowego "ddd"

Specyfikator formatu niestandardowego „ddd” przedstawia skróconą nazwę dnia tygodnia. Skrócona nazwa zlokalizowanego dnia tygodnia jest pobierana z właściwości DateTimeFormatInfo.AbbreviatedDayNames bieżącej lub określonej kultury.

W poniższym przykładzie specyfikator formatu niestandardowego „ddd” jest używany w ciągu formatu niestandardowego.

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                                                

Powrót do tabeli

Specyfikator formatu niestandardowego "dddd"

Specyfikator formatu niestandardowego „dddd” (plus dowolna liczba dodatkowych specyfikatorów „d”) oznacza pełną nazwę dnia tygodnia. Nazwa zlokalizowanego dnia tygodnia jest pobierana z właściwości DateTimeFormatInfo.DayNames bieżącej lub określonej kultury.

W poniższym przykładzie specyfikator formatu niestandardowego „dddd” jest używany w ciągu formatu niestandardowego.

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                                          

Powrót do tabeli

Specyfikator ułamka "f" małych liter (s)

Specyfikator formatu niestandardowego "f"

Specyfikator formatu niestandardowego „f” przedstawia najbardziej znaczącą cyfrę części sekund, czyli przedstawia liczbę dziesiątych części sekundy w wartości daty i godziny.

Jeśli specyfikator formatu "f" jest używany bez innych specyfikatorów formatu, będzie interpretowany jako specyfikator standardowego formatu daty i czasu "f". Aby uzyskać więcej informacji na temat używania pojedynczego specyfikatora formatu, zobacz Using Single Custom Format Specifiers (Używanie specyfikatorów formatu niestandardowego pojedynczego) w dalszej części tego artykułu.

Jeśli używasz specyfikatorów formatu "f" jako części ciągu formatu dostarczonego do metody , , lub , liczba specyfikatorów formatu ParseExact "f" wskazuje liczbę najbardziej znaczących cyfr części sekund, która musi być obecna, aby pomyślnie przesłonić TryParseExact ParseExact TryParseExact ciąg.

W poniższym przykładzie specyfikator formatu niestandardowego „f” jest używany w ciągu formatu niestandardowego.

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

Powrót do tabeli

Specyfikator formatu niestandardowego "ff"

Specyfikator formatu niestandardowego „ff” przedstawia dwie najbardziej znaczące cyfry części sekund, czyli przedstawia liczbę setnych części sekundy w wartości daty i godziny.

W poniższym przykładzie specyfikator formatu niestandardowego „fff” jest używany w ciągu formatu niestandardowego.

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

Powrót do tabeli

Specyfikator formatu niestandardowego "fff"

Specyfikator formatu niestandardowego „fff” przedstawia trzy najbardziej znaczące cyfry części sekund, czyli przedstawia liczbę milisekund w wartości daty i godziny.

W poniższym przykładzie specyfikator formatu niestandardowego „fff” jest używany w ciągu formatu niestandardowego.

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

Powrót do tabeli

Specyfikator formatu niestandardowego "ffff"

Specyfikator formatu niestandardowego „ffff” przedstawia cztery najbardziej znaczące cyfry części sekund, czyli przedstawia liczbę dziesięciotysięcznych części sekundy w wartości daty i godziny.

Chociaż możliwe jest wyświetlenie dziesiątych tysięków sekundy składnika wartości czasu, ta wartość może nie mieć znaczenia. Dokładność wartości daty i godziny zależy od rozdzielczości zegara systemu. W systemach operacyjnych Windows NT w wersji 3.5 (oraz nowszych) i Windows Vista rozdzielczość zegara wynosi około 10–15 milisekund.

Powrót do tabeli

Specyfikator formatu niestandardowego "fffff"

Specyfikator formatu niestandardowego „fffff” przedstawia pięć najbardziej znaczących cyfr części sekund, czyli przedstawia liczbę stutysięcznych części sekundy w wartości daty i godziny.

Chociaż możliwe jest wyświetlenie setek tysięcy części sekundy wartości czasu, ta wartość może nie mieć znaczenia. Dokładność wartości daty i godziny zależy od rozdzielczości zegara systemu. W systemach operacyjnych Windows NT w wersji 3.5 (oraz nowszych) i Windows Vista rozdzielczość zegara wynosi około 10–15 milisekund.

Powrót do tabeli

Specyfikator formatu niestandardowego "ffffff"

Specyfikator formatu niestandardowego „ffffff” przedstawia sześć najbardziej znaczących cyfr części sekund, czyli przedstawia liczbę milionowych części sekundy w wartości daty i godziny.

Chociaż jest możliwe wyświetlenie milionowych części drugiego składnika wartości czasu, ta wartość może nie mieć znaczenia. Dokładność wartości daty i godziny zależy od rozdzielczości zegara systemu. W systemach operacyjnych Windows NT w wersji 3.5 (oraz nowszych) i Windows Vista rozdzielczość zegara wynosi około 10–15 milisekund.

Powrót do tabeli

Specyfikator formatu niestandardowego "fffffff"

Specyfikator formatu niestandardowego „fffffff” przedstawia siedem najbardziej znaczących cyfr części sekund, czyli przedstawia liczbę dziesięciomilionowych części sekundy w wartości daty i godziny.

Chociaż możliwe jest wyświetlenie dziesiątych milionowych części sekundy wartości czasu, ta wartość może nie mieć znaczenia. Dokładność wartości daty i godziny zależy od rozdzielczości zegara systemu. W systemach operacyjnych Windows NT w wersji 3.5 (oraz nowszych) i Windows Vista rozdzielczość zegara wynosi około 10–15 milisekund.

Powrót do tabeli

Specyfikator ułamka "F" wielkich liter w sekundach

Specyfikator formatu niestandardowego "F"

Specyfikator formatu niestandardowego „F” przedstawia najbardziej znaczącą cyfrę części sekund, czyli przedstawia liczbę dziesiątych części sekundy w wartości daty i godziny. Nic nie jest wyświetlane, jeśli cyfra jest równa zero, a separator dziesiętny następujący po liczbie sekund również nie jest wyświetlany.

Jeśli specyfikator formatu "F" jest używany bez innych specyfikatorów formatu, będzie interpretowany jako specyfikator standardowego formatu daty i czasu "F". Aby uzyskać więcej informacji na temat używania pojedynczego specyfikatora formatu, zobacz Using Single Custom Format Specifiers (Używanie specyfikatorów formatu niestandardowego pojedynczego) w dalszej części tego artykułu.

Liczba specyfikatorów formatu "F" używanych z metodą , , lub wskazuje maksymalną liczbę najbardziej znaczących cyfr części sekund, która może być obecna w celu pomyślnego analizowania ParseExact TryParseExact ParseExact TryParseExact ciągu.

W poniższym przykładzie specyfikator formatu niestandardowego „F” jest używany w ciągu formatu niestandardowego.

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

Powrót do tabeli

Specyfikator formatu niestandardowego "FF"

Specyfikator formatu niestandardowego „FF” przedstawia dwie najbardziej znaczące cyfry części sekund, czyli przedstawia liczbę setnych części sekundy w wartości daty i godziny. Końcowe zera nie są wyświetlane. Nic nie jest wyświetlane, jeśli dwie cyfry znaczące mają wartość zero, a w tym przypadku separator dziesiętny następujący po liczbie sekund również nie jest wyświetlany.

W poniższym przykładzie specyfikator formatu niestandardowego „FF” jest używany w ciągu formatu niestandardowego.

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

Powrót do tabeli

Specyfikator formatu niestandardowego "FFF"

Specyfikator formatu niestandardowego „FFF” przedstawia trzy najbardziej znaczące cyfry części sekund, czyli przedstawia liczbę milisekund w wartości daty i godziny. Końcowe zera nie są wyświetlane. Nic nie jest wyświetlane, jeśli trzy cyfry znaczące mają wartość zero, a w tym przypadku separator dziesiętny następujący po liczbie sekund również nie jest wyświetlany.

W poniższym przykładzie specyfikator formatu niestandardowego „FFF” jest używany w ciągu formatu niestandardowego.

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

Powrót do tabeli

Specyfikator formatu niestandardowego "FFFF"

Specyfikator formatu niestandardowego „FFFF” przedstawia cztery najbardziej znaczące cyfry części sekund, czyli przedstawia liczbę dziesięciotysięcznych części sekundy w wartości daty i godziny. Końcowe zera nie są wyświetlane. Nic nie jest wyświetlane, jeśli cztery cyfry znaczące mają wartość zero, a w tym przypadku separator dziesiętny następujący po liczbie sekund również nie jest wyświetlany.

Chociaż możliwe jest wyświetlenie dziesiątych tysięków sekundy składnika wartości czasu, ta wartość może nie mieć znaczenia. Dokładność wartości daty i godziny zależy od rozdzielczości zegara systemu. W systemach operacyjnych Windows NT w wersji 3.5 (oraz nowszych) i Windows Vista rozdzielczość zegara wynosi około 10–15 milisekund.

Powrót do tabeli

Specyfikator formatu niestandardowego "FFFFF"

Specyfikator formatu niestandardowego „FFFFF” przedstawia pięć najbardziej znaczących cyfr części sekund, czyli przedstawia liczbę stutysięcznych części sekundy w wartości daty i godziny. Końcowe zera nie są wyświetlane. Nic nie jest wyświetlane, jeśli pięć cyfr znaczących ma wartość zero, a w tym przypadku separator dziesiętny następujący po liczbie sekund również nie jest wyświetlany.

Chociaż możliwe jest wyświetlenie setek tysięcy części sekundy wartości czasu, ta wartość może nie mieć znaczenia. Dokładność wartości daty i godziny zależy od rozdzielczości zegara systemu. W systemach operacyjnych Windows NT w wersji 3.5 (oraz nowszych) i Windows Vista rozdzielczość zegara wynosi około 10–15 milisekund.

Powrót do tabeli

Specyfikator formatu niestandardowego "FFFFFF"

Specyfikator formatu niestandardowego „FFFFFF” przedstawia sześć najbardziej znaczących cyfr części sekund, czyli przedstawia liczbę milionowych części sekundy w wartości daty i godziny. Końcowe zera nie są wyświetlane. Nic nie jest wyświetlane, jeśli sześć cyfr znaczących ma wartość zero, a w tym przypadku separator dziesiętny następujący po liczbie sekund również nie jest wyświetlany.

Chociaż jest możliwe wyświetlenie milionowych części drugiego składnika wartości czasu, ta wartość może nie mieć znaczenia. Dokładność wartości daty i godziny zależy od rozdzielczości zegara systemu. W systemach operacyjnych Windows NT w wersji 3.5 (oraz nowszych) i Windows Vista rozdzielczość zegara wynosi około 10–15 milisekund.

Powrót do tabeli

Specyfikator formatu niestandardowego "FFFFFFF"

Specyfikator formatu niestandardowego „FFFFFFF” przedstawia siedem najbardziej znaczących cyfr części sekund, czyli przedstawia liczbę dziesięciomilionowych części sekundy w wartości daty i godziny. Końcowe zera nie są wyświetlane. Nic nie jest wyświetlane, jeśli siedem cyfr znaczących ma wartość zero, a w tym przypadku separator dziesiętny następujący po liczbie sekund również nie jest wyświetlany.

Chociaż możliwe jest wyświetlenie dziesiątych milionowych części sekundy wartości czasu, ta wartość może nie mieć znaczenia. Dokładność wartości daty i godziny zależy od rozdzielczości zegara systemu. W systemach operacyjnych Windows NT w wersji 3.5 (oraz nowszych) i Windows Vista rozdzielczość zegara wynosi około 10–15 milisekund.

Powrót do tabeli

Specyfikator formatu ery "g"

Specyfikator formatu niestandardowego "g" lub "gg"

Specyfikator formatu niestandardowego „g” lub „gg” (plus dowolna liczba dodatkowych specyfikatorów „g”) przedstawia okres lub erę, taką jak n.e. Operacja formatowania ignoruje ten specyfikator, jeśli data do sformatowania nie ma skojarzonego ciągu okresu lub ery.

Jeśli specyfikator formatu "g" jest używany bez innych specyfikatorów formatu niestandardowego, będzie interpretowany jako specyfikator standardowego formatu daty i czasu "g". Aby uzyskać więcej informacji na temat używania pojedynczego specyfikatora formatu, zobacz Using Single Custom Format Specifiers (Używanie specyfikatorów formatu niestandardowego pojedynczego) w dalszej części tego artykułu.

W poniższym przykładzie specyfikator formatu niestandardowego „g” jest używany w ciągu formatu niestandardowego.

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.

Powrót do tabeli

Specyfikator formatu godziny "h" małych liter

Specyfikator formatu niestandardowego "h"

Specyfikator formatu niestandardowego „h” przedstawia godzinę jako liczbę z zakresu od 1 do 12, czyli godzina jest przedstawiana za pomocą zegara 12-godzinnego, który zlicza pełne godziny od północy lub południa. Określonej godziny po północy nie można odróżnić od tej samej godziny po południu. Godzina nie jest zaokrąglona, a godzina oznaczona jedną cyfrą jest formatowana bez zera wiodącego. Na przykład w przypadku godziny 5:43 rano lub po południu użycie tego specyfikatora formatu niestandardowego spowoduje wyświetlenie wartości „5”.

Jeśli specyfikator formatu "h" jest używany bez innych specyfikatorów formatu niestandardowego, jest interpretowany jako specyfikator standardowego formatu daty i godziny oraz zgłasza FormatException wyjątek . Aby uzyskać więcej informacji na temat używania pojedynczego specyfikatora formatu, zobacz Using Single Custom Format Specifiers (Używanie specyfikatorów formatu niestandardowego pojedynczego) w dalszej części tego artykułu.

W poniższym przykładzie specyfikator formatu niestandardowego „h” jest używany w ciągu formatu niestandardowego.

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 µ

Powrót do tabeli

Specyfikator formatu niestandardowego "hh"

Specyfikator formatu niestandardowego „hh” (plus dowolna liczba dodatkowych specyfikatorów „h”) przedstawia godzinę jako liczbę z zakresu od 01 do 12, czyli godzina jest przedstawiana za pomocą zegara 12-godzinnego, który zlicza pełne godziny od północy lub południa. Określonej godziny po północy nie można odróżnić od tej samej godziny po południu. Godzina nie jest zaokrąglona, a godzina oznaczona jedną cyfrą jest formatowana z zerem wiodącym. Na przykład w przypadku godziny 5:43 rano lub po południu użycie tego specyfikatora formatu niestandardowego spowoduje wyświetlenie wartości „05”.

W poniższym przykładzie specyfikator formatu niestandardowego „hh” jest używany w ciągu formatu niestandardowego.

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.

Powrót do tabeli

Specyfikator formatu godziny "H" wielkich liter

Specyfikator formatu niestandardowego "H"

Specyfikator formatu niestandardowego „H” przedstawia godzinę jako liczbę z zakresu od 0 do 23, czyli godzina jest przedstawiana za pomocą zawierającego zero zegara 24-godzinnego, który zlicza pełne godziny od północy. Godzina oznaczona jedną cyfrą jest formatowana bez zera wiodącego.

Jeśli specyfikator formatu "H" jest używany bez innych specyfikatorów formatu niestandardowego, jest interpretowany jako specyfikator standardowego formatu daty i godziny oraz zgłasza FormatException wyjątek . Aby uzyskać więcej informacji na temat używania pojedynczego specyfikatora formatu, zobacz Using Single Custom Format Specifiers (Używanie specyfikatorów formatu niestandardowego pojedynczego) w dalszej części tego artykułu.

W poniższym przykładzie specyfikator formatu niestandardowego „H” jest używany w ciągu formatu niestandardowego.

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                        

Powrót do tabeli

Specyfikator formatu niestandardowego "HH"

Specyfikator formatu niestandardowego „HH” (plus dowolna liczba dodatkowych specyfikatorów „H”) przedstawia godzinę jako liczbę z zakresu od 00 do 23, czyli godzina jest przedstawiana za pomocą zawierającego zero zegara 24-godzinnego, który zlicza pełne godziny od północy. Godzina oznaczona jedną cyfrą jest formatowana z zerem wiodącym.

W poniższym przykładzie specyfikator formatu niestandardowego „HH” jest używany w ciągu formatu niestandardowego.

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                        

Powrót do tabeli

Specyfikator formatu strefy czasowej "K"

Specyfikator formatu niestandardowego "K"

Specyfikator formatu niestandardowego „K” przedstawia informacje o strefie czasowej z wartości daty i godziny. Gdy ten specyfikator formatu jest używany z wartościami, ciąg wynikowy jest definiowany przez DateTime wartość DateTime.Kind właściwości:

  • Dla lokalnej strefy czasowej (wartości właściwości ) ten specyfikator jest odpowiednikiem specyfikatora "zzz" i generuje ciąg wynikowy zawierający przesunięcie lokalne z Uniwersalny czas koordynowany (UTC), na przykład DateTime.Kind DateTimeKind.Local "-07:00".

  • W przypadku czasu UTC (wartość właściwości ) ciąg wynikowy zawiera znak DateTime.Kind DateTimeKind.Utc "Z" reprezentujący datę UTC.

  • W przypadku czasu z nieokreślonego strefy czasowej (czas, którego właściwość jest równa ) wynik DateTime.Kind DateTimeKind.Unspecified jest odpowiednikiem String.Empty .

W przypadku wartości specyfikator formatu "K" jest odpowiednikiem specyfikatora formatu "zzz" i tworzy ciąg wynikowy zawierający przesunięcie wartości DateTimeOffset DateTimeOffset od czasu UTC.

Jeśli specyfikator formatu "K" jest używany bez innych specyfikatorów formatu niestandardowego, jest interpretowany jako specyfikator standardowego formatu daty i czasu oraz zgłasza FormatException wyjątek . Aby uzyskać więcej informacji na temat używania pojedynczego specyfikatora formatu, zobacz Using Single Custom Format Specifiers (Używanie specyfikatorów formatu niestandardowego pojedynczego) w dalszej części tego artykułu.

W poniższym przykładzie wyświetlany jest ciąg, który jest skutkiem użycia specyfikatora formatu niestandardowego "K" z różnymi wartościami i w systemie w DateTime DateTimeOffset strefie czasowej Pacyfiku Stanów Zjednoczonych.

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                        

Powrót do tabeli

Specyfikator formatu minuty "m"

Specyfikator formatu niestandardowego "m"

Specyfikator formatu niestandardowego „m” przedstawia minutę jako liczbę z zakresu od 0 do 59. Wynik to liczba pełnych minut, które upłynęły od ostatniej godziny. Minuta oznaczona jedną cyfrą jest formatowana bez zera wiodącego.

Jeśli specyfikator formatu "m" jest używany bez innych specyfikatorów formatu niestandardowego, będzie interpretowany jako specyfikator standardowego formatu daty i czasu "m". Aby uzyskać więcej informacji na temat używania pojedynczego specyfikatora formatu, zobacz Using Single Custom Format Specifiers (Używanie specyfikatorów formatu niestandardowego pojedynczego) w dalszej części tego artykułu.

W poniższym przykładzie specyfikator formatu niestandardowego „m” jest używany w ciągu formatu niestandardowego.

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 µ

Powrót do tabeli

Specyfikator formatu niestandardowego "mm"

Specyfikator formatu niestandardowego „mm” (plus dowolna liczba dodatkowych specyfikatorów „m”) przedstawia minutę jako liczbę z zakresu od 00 do 59. Wynik to liczba pełnych minut, które upłynęły od ostatniej godziny. Minuta oznaczona jedną cyfrą jest formatowana z zerem wiodącym.

W poniższym przykładzie specyfikator formatu niestandardowego „mm” jest używany w ciągu formatu niestandardowego.

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.

Powrót do tabeli

Specyfikator formatu miesiąca "M"

Specyfikator formatu niestandardowego "M"

Specyfikator formatu niestandardowego „M” przedstawia miesiąc jako liczbę z zakresu od 1 do 12 (lub od 1 do 13 w przypadku kalendarzy 13-miesięcznych). Miesiąc oznaczony jedną cyfrą jest formatowany bez zera wiodącego.

Jeśli specyfikator formatu "M" jest używany bez innych specyfikatorów formatu niestandardowego, będzie interpretowany jako specyfikator standardowego formatu daty i czasu "M". Aby uzyskać więcej informacji na temat używania pojedynczego specyfikatora formatu, zobacz Using Single Custom Format Specifiers (Używanie specyfikatorów formatu niestandardowego pojedynczego) w dalszej części tego artykułu.

W poniższym przykładzie specyfikator formatu niestandardowego „M” jest używany w ciągu formatu niestandardowego.

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                       

Powrót do tabeli

Specyfikator formatu niestandardowego "MM"

Specyfikator formatu niestandardowego „MM” przedstawia miesiąc jako liczbę z zakresu od 01 do 12 (lub od 01 do 13 w przypadku kalendarzy 13-miesięcznych). Miesiąc oznaczony jedną cyfrą jest formatowany z zerem wiodącym.

W poniższym przykładzie specyfikator formatu niestandardowego „MM” jest używany w ciągu formatu niestandardowego.

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

Powrót do tabeli

Specyfikator formatu niestandardowego "MMM"

Specyfikator formatu niestandardowego „MMM” przedstawia skróconą nazwę miesiąca. Skrócona nazwa miesiąca jest pobierana z właściwości DateTimeFormatInfo.AbbreviatedMonthNames bieżącej lub określonej kultury.

W poniższym przykładzie specyfikator formatu niestandardowego „MMM” jest używany w ciągu formatu niestandardowego.

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                                                

Powrót do tabeli

Specyfikator formatu niestandardowego "MMMM"

Specyfikator formatu niestandardowego „MMMM” przedstawia pełną nazwę miesiąca. Lokalna nazwa miesiąca jest pobierana z właściwości DateTimeFormatInfo.MonthNames bieżącej lub określonej kultury.

W poniższym przykładzie specyfikator formatu niestandardowego „MMMM” jest używany w ciągu formatu niestandardowego.

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                                          

Powrót do tabeli

Specyfikator formatu sekund "s"

Specyfikator formatu niestandardowego "s"

Specyfikator formatu niestandardowego „s” przedstawia sekundy jako liczbę z zakresu od 0 do 59. Wynik przedstawia pełne sekundy, które upłynęły od ostatniej minuty. Sekunda oznaczona jedną cyfrą jest formatowana bez zera wiodącego.

Jeśli specyfikator formatu "s" jest używany bez innych specyfikatorów formatu niestandardowego, będzie interpretowany jako specyfikator standardowego formatu daty i czasu "s". Aby uzyskać więcej informacji na temat używania pojedynczego specyfikatora formatu, zobacz Using Single Custom Format Specifiers (Używanie specyfikatorów formatu niestandardowego pojedynczego) w dalszej części tego artykułu.

W poniższym przykładzie specyfikator formatu niestandardowego „s” jest używany w ciągu formatu niestandardowego.

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 µ

Powrót do tabeli

Specyfikator formatu niestandardowego "ss"

Specyfikator formatu niestandardowego „s” (plus dowolna liczba dodatkowych specyfikatorów „s”) przedstawia sekundy jako liczbę z zakresu od 00 do 59. Wynik przedstawia pełne sekundy, które upłynęły od ostatniej minuty. Sekunda oznaczona jedną cyfrą jest formatowana z zerem wiodącym.

W poniższym przykładzie specyfikator formatu niestandardowego „ss” jest używany w ciągu formatu niestandardowego.

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.

Powrót do tabeli

Specyfikator formatu "t" Meridiem

Specyfikator formatu niestandardowego "t"

Specyfikator formatu niestandardowego „t” przedstawia pierwszy znak oznaczenia AM/PM. Odpowiedni zlokalizowany projektator jest pobierany z właściwości DateTimeFormatInfo.AMDesignator lub DateTimeFormatInfo.PMDesignator bieżącej lub określonej kultury. Oznaczenie AM jest stosowanie do wszystkich godzin z zakresu od 0:00:00 (północ) do 11:59:59.999. Oznaczenie PM jest stosowane do wszystkich godzin z zakresu od 12:00:00 (południe) do 23:59:59.999.

Jeśli specyfikator formatu "t" jest używany bez innych specyfikatorów formatu niestandardowego, jest interpretowany jako specyfikator standardowego formatu daty i czasu "t". Aby uzyskać więcej informacji na temat używania specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specifiers w dalszej części tego artykułu.

W poniższym przykładzie specyfikator formatu niestandardowego „t” jest używany w ciągu formatu niestandardowego.

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 µ

Powrót do tabeli

Specyfikator formatu niestandardowego "tt"

Specyfikator formatu niestandardowego „tt” (plus dowolna liczba dodatkowych specyfikatorów „t”) przedstawia całe oznaczenie AM/PM. Odpowiedni zlokalizowany program projektowy jest pobierany z właściwości DateTimeFormatInfo.AMDesignator lub DateTimeFormatInfo.PMDesignator bieżącej lub określonej kultury. Oznaczenie AM jest stosowanie do wszystkich godzin z zakresu od 0:00:00 (północ) do 11:59:59.999. Oznaczenie PM jest stosowane do wszystkich godzin z zakresu od 12:00:00 (południe) do 23:59:59.999.

Upewnij się, że używasz specyfikatora "tt" dla języków, dla których należy zachować rozróżnienie między AM i PM. Przykładem jest język japoński, dla którego oznaczenia AM i PM różnią się w drugim znaku, a nie w pierwszym znaku.

W poniższym przykładzie specyfikator formatu niestandardowego „tt” jest używany w ciągu formatu niestandardowego.

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.

Powrót do tabeli

Specyfikator formatu roku "y"

Specyfikator formatu niestandardowego "y"

Specyfikator formatu niestandardowego „y” przedstawia rok jako jedno- lub dwucyfrową liczbę. Jeśli rok ma więcej niż dwie cyfry, w wyniku pojawią się tylko dwie ostatnie cyfry. Jeżeli pierwsza cyfra roku dwucyfrowego rozpoczyna się od zera (na przykład, 2008), liczba jest formatowana bez zera wiodącego.

Jeśli specyfikator formatu "y" jest używany bez innych specyfikatorów formatu niestandardowego, jest interpretowany jako specyfikator standardowego formatu daty i godziny "y". Aby uzyskać więcej informacji na temat używania specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specifiers w dalszej części tego artykułu.

W poniższym przykładzie specyfikator formatu niestandardowego „y” jest używany w ciągu formatu niestandardowego.

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      

Powrót do tabeli

Specyfikator formatu niestandardowego "yy"

Specyfikator formatu niestandardowego „yy” przedstawia rok jako liczbę dwucyfrową. Jeśli rok ma więcej niż dwie cyfry, w wyniku pojawią się tylko dwie ostatnie cyfry. Jeśli rok dwucyfrowy ma mniej niż dwie cyfry znaczące, liczba jest dopełniana wiodącymi zerami w celu utworzenia dwóch cyfr.

W operacji analizowania dwucyfrowy rok analizowany przy użyciu specyfikatora formatu niestandardowego "yy" jest interpretowany na podstawie właściwości bieżącego kalendarza dostawcy Calendar.TwoDigitYearMax formatu. W poniższym przykładzie jest analizowany ciąg przedstawiając datę, która ma domyślnie dwucyfrowy rok według domyślnego kalendarza gregoriańskiego w kulturze en-US, która w tym przypadku jest bieżącą kulturą. Następnie zmienia obiekt bieżącej kultury, aby CultureInfo użyć GregorianCalendar obiektu, którego właściwość została TwoDigitYearMax zmodyfikowana.

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

W poniższym przykładzie specyfikator formatu niestandardowego „yy” jest używany w ciągu formatu niestandardowego.

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      

Powrót do tabeli

Specyfikator formatu niestandardowego "yyy"

Specyfikator formatu niestandardowego „yyy” przedstawia rok za pomocą co najmniej trzech cyfr. Jeśli rok ma więcej niż trzy cyfry znaczące, są one uwzględnione w ciągu wynikowym. Jeśli rok ma mniej niż trzy cyfry, liczba jest dopełniana wiodącymi zerami w celu utworzenia trzech cyfr.

Uwaga

W przypadku tajskiego kalendarza buddyjskiego, w którym rok może być liczbą pięciocyfrową, ten specyfikator formatu powoduje wyświetlenie wszystkich cyfr znaczących.

W poniższym przykładzie specyfikator formatu niestandardowego „yyy” jest używany w ciągu formatu niestandardowego.

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      

Powrót do tabeli

Specyfikator formatu niestandardowego "yyyy"

Specyfikator formatu niestandardowego „yyyy” przedstawia rok za pomocą co najmniej czterech cyfr. Jeśli rok ma więcej niż cztery cyfry znaczące, są one uwzględnione w ciągu wynikowym. Jeśli rok ma mniej niż cztery cyfry, liczba jest dopełniana wiodącymi zerami w celu utworzenia czterech cyfr.

Uwaga

W przypadku tajskiego kalendarza buddyjskiego, w którym rok może być liczbą pięciocyfrową, ten specyfikator formatu powoduje wyświetlenie co najmniej czterech cyfr.

W poniższym przykładzie specyfikator formatu niestandardowego „yyyy” jest używany w ciągu formatu niestandardowego.

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      

Powrót do tabeli

Specyfikator formatu niestandardowego "yyyyy"

Specyfikator formatu niestandardowego „yyyyy” (plus dowolna liczba dodatkowych specyfikatorów „y”) przedstawia rok za pomocą co najmniej pięciu cyfr. Jeśli rok ma więcej niż pięć cyfr znaczących, są one uwzględnione w ciągu wynikowym. Jeśli rok ma mniej niż pięć cyfr, liczba jest dopełniana zerami wiodącymi w celu utworzenia pięciu cyfr.

Jeśli istnieją dodatkowe specyfikatory „y”, liczba jest dopełniana tak wieloma zerami wiodącymi, jak jest to konieczne, aby utworzyć liczbę specyfikatorów „y”.

W poniższym przykładzie specyfikator formatu niestandardowego „yyyyy” jest używany w ciągu formatu niestandardowego.

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      

Powrót do tabeli

Specyfikator formatu przesunięcia "z"

Specyfikator formatu niestandardowego "z"

W przypadku wartości specyfikator formatu niestandardowego "z" reprezentuje podpisane przesunięcie strefy czasowej lokalnego systemu operacyjnego z wartości Uniwersalny czas koordynowany DateTime (UTC) mierzone w godzinach. Nie odzwierciedla ona wartości właściwości DateTime.Kind wystąpienia. Z tego powodu specyfikator formatu "z" nie jest zalecany do użycia z DateTime wartościami.

W przypadku wartości ten specyfikator formatu reprezentuje przesunięcie wartości od DateTimeOffset DateTimeOffset czasu UTC w godzinach.

Przesuni‪ęcie jest zawsze wyświetlane ze znakiem wiodącym. Znak plus (+) wskazuje godziny wyprzedzające czas UTC, a znak minus (-) wskazuje godziny pozostające w tyle za czasem UTC. Przesunięcie oznaczone jedną cyfrą jest formatowane bez zera wiodącego.

Jeśli specyfikator formatu "z" jest używany bez innych specyfikatorów formatu niestandardowego, jest interpretowany jako specyfikator standardowego formatu daty i czasu oraz zgłasza FormatException wyjątek . Aby uzyskać więcej informacji na temat używania specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specifiers w dalszej części tego artykułu.

W poniższym przykładzie specyfikator formatu niestandardowego „z” jest używany w ciągu formatu niestandardowego.

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

Powrót do tabeli

Specyfikator formatu niestandardowego "zz"

W przypadku wartości specyfikator formatu niestandardowego "zz" reprezentuje podpisane przesunięcie strefy czasowej lokalnego systemu operacyjnego od DateTime czasu UTC mierzone w godzinach. Nie odzwierciedla ona wartości właściwości DateTime.Kind wystąpienia. Z tego powodu specyfikator formatu "zz" nie jest zalecany do użycia z DateTime wartościami.

W przypadku wartości ten specyfikator formatu reprezentuje przesunięcie wartości od DateTimeOffset DateTimeOffset czasu UTC w godzinach.

Przesuni‪ęcie jest zawsze wyświetlane ze znakiem wiodącym. Znak plus (+) wskazuje godziny wyprzedzające czas UTC, a znak minus (-) wskazuje godziny pozostające w tyle za czasem UTC. Przesunięcie oznaczone jedną cyfrą jest formatowane z zerem wiodącym.

W poniższym przykładzie specyfikator formatu niestandardowego „zz” jest używany w ciągu formatu niestandardowego.

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

Powrót do tabeli

Specyfikator formatu niestandardowego "zzz"

W przypadku wartości specyfikator formatu niestandardowego "zzz" reprezentuje podpisane przesunięcie strefy czasowej lokalnego systemu operacyjnego od czasu UTC mierzone w godzinach DateTime i minutach. Nie odzwierciedla ona wartości właściwości DateTime.Kind wystąpienia. Z tego powodu specyfikator formatu "zzz" nie jest zalecany do użycia z DateTime wartościami.

W przypadku wartości ten specyfikator formatu reprezentuje przesunięcie wartości od czasu UTC w DateTimeOffset DateTimeOffset godzinach i minutach.

Przesuni‪ęcie jest zawsze wyświetlane ze znakiem wiodącym. Znak plus (+) wskazuje godziny wyprzedzające czas UTC, a znak minus (-) wskazuje godziny pozostające w tyle za czasem UTC. Przesunięcie oznaczone jedną cyfrą jest formatowane z zerem wiodącym.

W poniższym przykładzie specyfikator formatu niestandardowego „zzz” jest używany w ciągu formatu niestandardowego.

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

Powrót do tabeli

Specyfikatory separatora daty i godziny

Specyfikator formatu niestandardowego ":"

Specyfikator formatu niestandardowego „:” przedstawia separator godzin, który jest używany do odróżnienia godzin, minut i sekund. Odpowiedni zlokalizowany separator czasu jest pobierany z właściwości DateTimeFormatInfo.TimeSeparator bieżącej lub określonej kultury.

Uwaga

Aby zmienić separator godziny dla określonego ciągu daty i godziny, określ znak separatora w ograniczniku ciągu literału. Na przykład ciąg formatu niestandardowego tworzy ciąg wynikowy, w którym " " (znak podkreślenia) jest zawsze używany hh'_'dd'_'ss _ jako separator godziny. Aby zmienić separator godziny dla wszystkich dat dla kultury, zmień wartość właściwości bieżącej kultury lub za pomocą wystąpienia obiektu przypisz znak do jego właściwości i wywołaj przeciążenie metody formatowania, która DateTimeFormatInfo.TimeSeparator DateTimeFormatInfo zawiera TimeSeparator IFormatProvider parametr.

Jeśli specyfikator formatu ":" jest używany bez innych specyfikatorów formatu niestandardowego, jest interpretowany jako specyfikator standardowego formatu daty i czasu oraz zgłasza FormatException wyjątek . Aby uzyskać więcej informacji na temat używania specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specifiers w dalszej części tego artykułu.

Powrót do tabeli

Specyfikator formatu niestandardowego "/"

Specyfikator formatu niestandardowego „/” oznacza separator daty, który jest używany do odróżnienia lat, miesięcy i dni. Odpowiedni zlokalizowany separator daty jest pobierany z właściwości DateTimeFormatInfo.DateSeparator bieżącej lub określonej kultury.

Uwaga

Aby zmienić separator daty dla określonego ciągu daty i godziny, określ znak separatora w ograniczniku ciągu literału. Na przykład ciąg formatu niestandardowego tworzy ciąg wynikowy, w mm'/'dd'/'yyyy którym znak "/" jest zawsze używany jako separator daty. Aby zmienić separator daty dla wszystkich dat dla kultury, zmień wartość właściwości bieżącej kultury lub za pomocą wystąpienia obiektu przypisz znak do jego właściwości i wywołaj przeciążenie metody formatowania, która DateTimeFormatInfo.DateSeparator DateTimeFormatInfo zawiera DateSeparator IFormatProvider parametr.

Jeśli specyfikator formatu "/" jest używany bez innych specyfikatorów formatu niestandardowego, jest interpretowany jako specyfikator standardowego formatu daty i czasu oraz zgłasza FormatException wyjątek . Aby uzyskać więcej informacji na temat używania specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specifiers w dalszej części tego artykułu.

Powrót do tabeli

Literały znaków

Następujące znaki w ciągu niestandardowego formatu daty i czasu są zarezerwowane i są zawsze interpretowane jako znaki formatowania lub, w przypadku " znaków , , i , jako znaki ' / \ specjalne.

  • F
  • H
  • K
  • M
  • d
  • f
  • g
  • h
  • m
  • s
  • t
  • y
  • z
  • %
  • :
  • /
  • "
  • '
  • \

Wszystkie inne znaki są zawsze interpretowane jako literały znaków i w operacji formatowania są uwzględniane w ciągu wynikowym bez zmian. W operacji analizowania muszą dokładnie odpowiadać znakom w ciągu wejściowym; W porównaniu wielkość liter jest zróżnicowa.

Poniższy przykład zawiera znaki literału "PST" (pacyficzny czas standardowy) i "PDT" (czas pacyficzny czas letni) do reprezentowania lokalnej strefy czasowej w ciągu formatu. Należy pamiętać, że ciąg jest uwzględniony w ciągu wynikowym i że ciąg zawierający ciąg lokalnej strefy czasowej również zostanie pomyślnie przejmyty.

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

Istnieją dwa sposoby wskazania, że znaki mają być interpretowane jako znaki literału, a nie jako znaki rezerwowe, dzięki czemu mogą być zawarte w ciągu wynikowym lub pomyślnie analizowane w ciągu wejściowym:

Poniższy przykład zawiera znaki literału "pst" (dla czasu pacyficznego w standardowych), które reprezentują lokalną strefę czasową w ciągu formatu. Ponieważ zarówno "s", jak i "t" są niestandardowymi ciągami formatu, oba znaki muszą być interpretowane jako literały znaków.

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
  • Przez dołączenie całego ciągu literału w znaki cudzysłowu lub apostrofy. Poniższy przykład jest podobny do poprzedniego, z tą różnicą, że "pst" jest ujęty w cudzysłów, aby wskazać, że cały rozdzielany ciąg powinien być interpretowany jako literały znaków.
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

Uwagi

Używanie pojedynczych specyfikatorów formatu niestandardowego

Ciąg niestandardowego formatu daty i godziny składa się z co najmniej dwóch znaków. Metody formatowania daty i godziny interpretują każdy jednoznakowy ciąg jako ciąg standardowego formatu daty i godziny. Jeśli nie rozpoznają znaku jako specyfikatora prawidłowego formatu, zrzucą znak FormatException . Na przykład ciąg formatu, który składa się tylko ze specyfikatora „h”, jest interpretowany jako ciąg standardowego formatu daty i godziny. Jednak w tym konkretnym przypadku jest zgłaszany wyjątek, ponieważ nie istnieje standardowy specyfikator daty i formatu czasu "h".

Aby użyć jakiegokolwiek specyfikatora niestandardowego formatu daty i godziny jako jedynego specyfikatora w ciągu formatu (tj. użyć samego specyfikatora formatu niestandardowego „d”, „f”, „F”, „g”, „h”, „H”, „K”, „m”, „M”, „s”, „t”, „y”, „z”, „:”, lub „/”), należy przed lub za specyfikatorem umieścić spację albo umieścić specyfikator formatu procent („%”) przed pojedynczym specyfikatorem niestandardowego formatu daty i godziny.

Na przykład ciąg " jest interpretowany jako niestandardowy ciąg formatu daty i godziny, który wyświetla godzinę reprezentowaną przez bieżącą wartość daty %h" i godziny. Można także użyć ciągu formatu „ h” lub „h ”, mimo że zawierają w ciągu wynikowym i spację, i godzinę. W poniższym przykładzie pokazano te trzy ciągi formatu.

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 '

Używanie znaku ucieczki

Znaki „D”, „f”, „F”, „G”, „g”, „H”, „K”, „m”, „M”, „s”, „t”, „y”, „z”, „:”, lub „/” w ciągu formatu są interpretowane jako specyfikatory formatu niestandardowego, a nie jako znaki literału. Aby zapobiec interpretowaniu znaku jako specyfikatora formatu, można poprzedzić go ukośnikiem odwrotnym ( \ ), który jest znakiem ucieczki. Znak ucieczki oznacza, że następnym znakiem jest znak literału, który należy bez zmian umieścić w ciągu wynikowym.

Aby dołączyć ukośnik odwrotny do ciągu wynikowego, należy go odwrócić innym ukośnikiem odwrotnym ( \\ ).

Uwaga

Niektóre kompilatory, takie jak kompilatory języków C++ i C#, mogą również interpretować pojedynczy ukośnik odwrotny jako znak ucieczki. Aby zapewnić poprawną interpretację ciągu podczas formatowania, można użyć dosłownego znaku literału ciągu (znaku @) przed ciągiem w języku C# lub dodać inny znak ukośnika odwrotnego przed każdym ukośnikiem odwrotnym w ciągu w językach C# i C++. W poniższym przykładzie dla języka C# pokazano oba podejścia.

W poniższym przykładzie użyto znaku ucieczki, aby uniemożliwić operacji formatowania interpretowanie znaków „h” i „m” jako specyfikatorów formatu.

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      

Panel sterowania ustawień

Ustawienia Opcje regionalne i językowe w Panel sterowania mają wpływ na ciąg wynikowy wytwarzanych przez operację formatowania, która zawiera wiele specyfikatorów niestandardowego formatu daty i czasu. Te ustawienia są używane do inicjowania obiektu skojarzonego z bieżącą kulturą, która udostępnia wartości DateTimeFormatInfo służące do zarządzania formatowaniem. Na komputerach, na których są używane różne ustawienia, są generowane różne ciągi wynikowe.

Ponadto jeśli konstruktor jest używany do tworzenia wystąpienia nowego obiektu reprezentującego tę samą kulturę co bieżąca kultura systemu, wszelkie dostosowania określone przez element Opcje regionalne i językowe w programie Panel sterowania zostaną zastosowane do CultureInfo(String) CultureInfo nowego CultureInfo obiektu. Konstruktora można użyć do utworzenia obiektu, który nie odzwierciedla CultureInfo(String, Boolean) CultureInfo dostosowań systemu.

Właściwości dateTimeFormatInfo

Na formatowanie mają wpływ właściwości bieżącego obiektu, które są zapewniane niejawnie przez bieżącą kulturę lub jawnie przez parametr metody, DateTimeFormatInfo IFormatProvider która wywołuje formatowanie. Dla IFormatProvider parametru należy określić obiekt CultureInfo reprezentujący kulturę lub DateTimeFormatInfo obiekt .

Ciąg wynikowy wytwarzanych przez wiele specyfikatorów niestandardowego formatu daty i czasu zależy również od właściwości bieżącego DateTimeFormatInfo obiektu. Aplikacja może zmienić wynik niestandardowych specyfikatorów formatu daty i czasu, zmieniając odpowiednią DateTimeFormatInfo właściwość. Na przykład specyfikator formatu "ddd" dodaje skróconą nazwę dnia tygodnia znalezioną w tablicy AbbreviatedDayNames ciągów do ciągu wynikowego. Podobnie specyfikator formatu "MMMM" dodaje pełną nazwę miesiąca znalezioną w tablicy MonthNames ciągów do ciągu wynikowego.

Zobacz też