Udostępnij za pośrednictwem


Niestandardowe ciągi formatu daty i godziny

Ciąg formatu daty i godziny definiuje tekstową reprezentację DateTime wartości lub DateTimeOffset , która wynika z 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 godziny, jest interpretowany jako niestandardowy ciąg formatu daty i godziny.

Napiwek

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 daty i godziny oraz wyświetlania ciągu wyników. Kod źródłowy jest dostępny dla języka C# i Visual Basic.

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

Uwaga

Niektóre przykłady języka C# w tym artykule są uruchamiane w Try.NET wbudowanym modułem uruchamiającym kod i placem zabaw. Wybierz przycisk Uruchom, aby uruchomić przykład w oknie interaktywnym. Po wykonaniu kodu można go zmodyfikować i uruchomić zmodyfikowany kod, wybierając pozycję Uruchom ponownie. Zmodyfikowany kod jest uruchamiany w oknie interaktywnym lub, jeśli kompilacja zakończy się niepowodzeniem, w oknie interaktywnym zostaną wyświetlone wszystkie komunikaty o błędach kompilatora języka C#.

Lokalna strefa czasowa modułu uruchamiającego kod Try.NET wbudowany i plac zabaw to uniwersalny czas koordynowany lub UTC. Może to mieć wpływ na zachowanie i dane wyjściowe przykładów ilustrujących DateTimetypy , DateTimeOffseti TimeZoneInfo ich składowe.

W operacjach formatowania można używać niestandardowych ciągów formatu daty i godziny z ToString metodą wystąpienia daty i godziny lub metodą, która 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 można używać niestandardowych ciągów formatu daty i godziny z metodami DateTime.ParseExact, DateTimeOffset.ParseExactDateTime.TryParseExact, i DateTimeOffset.TryParseExact . Metody te wymagają, aby ciąg wejściowy był zgodny dokładnie z określonym wzorcem, aby operacja analizy zakończyła się powodzeniem. Poniższy przykład ilustruje wywołanie metody w DateTimeOffset.ParseExact(String, String, IFormatProvider) celu przeanalizowania daty, która musi zawierać dzień, miesiąc i dwucyfrowy rok.

using System;
using System.Globalization;

public class Example1
{
    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 przedstawiono ciąg wyników generowany 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, 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, 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 -> Пн (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 -> lundi (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.61700000 -> 61

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

Więcej informacji: Specyfikator formatu niestandardowego "fff".
6/15/2009 13:45:30.617 -> 617

6/15/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 -> 61755

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

6/15/2009 13:45:30.000005 -> 000000
„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 -> 0000000
„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.61700000 -> 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.61700000 -> 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 -> 52775

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

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, używając zegara 24-godzinnego od 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 wartościami DateTime :

2009-06-15T13:45:30, Rodzaj nieokreślony ->

2009-06-15T13:45:30, rodzaj utc -> Z

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

Z wartościami DateTimeOffset :

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

2009-06-15T08:45:30+00:00 --> +00:00
„m” Minuta, 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, 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, od 1 do 12.

Więcej informacji: Specyfikator formatu niestandardowego "M".
2009-06-15T13:45:30 -> 6
„MM” Miesiąc, 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 —> czerwiec (en-US)

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

2009-06-15T13:45:30 -> uJuni (zu-ZA)
„s” Drugi, od 0 do 59.

Więcej informacji: Specyfikator formatu niestandardowego "s".
2009-06-15T13:45:09 -> 9
„ss” Drugi, 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–> 00

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

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 "yyy".
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–> 0001

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

2009-06-15T13:45:30 -> . (tr-TR)
"ciąg"

"ciąg"
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: Używanie specyfikatorów pojedynczego formatu niestandardowego.
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 h
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. Jeśli nie określono inaczej, każdy specyfikator tworzy identyczną reprezentację ciągu niezależnie od tego, czy jest używany z wartością DateTime , czy wartością DateTimeOffset .

Specyfikator formatu "d" dnia

Specyfikator formatu niestandardowego "d"

Specyfikator formatu niestandardowego "d" reprezentuje dzień miesiąca jako liczbę 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, jest interpretowany jako specyfikator formatu standardowego daty i godziny "d". Aby uzyskać więcej informacji na temat korzystania z specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specyfikrs 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" reprezentuje dzień miesiąca jako liczbę 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. Zlokalizowana skrócona nazwa dnia tygodnia jest pobierana z DateTimeFormatInfo.AbbreviatedDayNames właściwości 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. Zlokalizowana nazwa dnia tygodnia jest pobierana z DateTimeFormatInfo.DayNames właściwości 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łamków "f" małych liter

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, jest interpretowany jako specyfikator standardowego formatu daty i godziny "f". Aby uzyskać więcej informacji na temat korzystania z specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specyfikrs w dalszej części tego artykułu.

W przypadku używania specyfikatorów formatu "f" w ramach ciągu formatu dostarczonego do ParseExactmetody , TryParseExact, ParseExactlub TryParseExact liczba specyfikatorów formatu "f" wskazuje liczbę najbardziej znaczących cyfr ułamka sekund, które muszą być obecne, aby pomyślnie przeanalizować 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żna wyświetlić dziesiąte części drugiego składnika wartości czasu, ta wartość może nie być znacząca. 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ż istnieje możliwość wyświetlenia setnych tysięcznych części drugiego składnika wartości czasu, ta wartość może nie być znacząca. 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ż można wyświetlić milionowe części drugiego składnika wartości czasu, ta wartość może nie być znacząca. 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żna wyświetlić dziesiąte części drugiego składnika wartości czasu, ta wartość może nie być znacząca. 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" w sekundach wielkich liter

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 ma wartość zero, a punkt dziesiętny, który następuje po liczbie sekund, również nie jest wyświetlany.

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

Liczba specyfikatorów formatu "F" używanych z ParseExactmetodą , TryParseExact, ParseExactlub TryParseExact wskazuje maksymalną liczbę najważniejszych cyfr ułamka sekund, które mogą być obecne, aby pomyślnie przeanalizować 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. Końcowe zera nie są wyświetlane. Nic nie jest wyświetlane, jeśli dwie znaczące cyfry są zerowe, a w takim przypadku dziesiętny punkt, który następuje 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 są zero, a w takim przypadku dziesiętny punkt, który następuje 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 są zerowe, a w takim przypadku dziesiętny punkt, który następuje po liczbie sekund, również nie jest wyświetlany.

Chociaż można wyświetlić dziesiąte części drugiego składnika wartości czasu, ta wartość może nie być znacząca. 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 takim przypadku nie jest również wyświetlany punkt dziesiętny, który następuje po liczbie sekund.

Chociaż istnieje możliwość wyświetlenia setnych tysięcznych części drugiego składnika wartości czasu, ta wartość może nie być znacząca. 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 takim przypadku nie jest również wyświetlany punkt dziesiętny, który następuje po liczbie sekund.

Chociaż można wyświetlić milionowe części drugiego składnika wartości czasu, ta wartość może nie być znacząca. 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 takim przypadku nie jest również wyświetlany punkt dziesiętny, który następuje po liczbie sekund.

Chociaż można wyświetlić dziesiąte części drugiego składnika wartości czasu, ta wartość może nie być znacząca. 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 "g" ery

Specyfikator formatu niestandardowego "g" lub "gg"

Specyfikatory formatu niestandardowego "g" lub "gg" (plus dowolna liczba dodatkowych specyfikatorów "g") reprezentuje okres lub erę, na przykład A.D. Operacja formatowania ignoruje ten specyfikator, jeśli data do sformatowania nie ma skojarzonego okresu ani ciągu ery.

Jeśli specyfikator formatu "g" jest używany bez innych specyfikatorów formatu niestandardowego, jest interpretowany jako specyfikator standardowego formatu daty i godziny "g". Aby uzyskać więcej informacji na temat korzystania z specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specyfikrs 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 "h" z małą literą

Specyfikator formatu niestandardowego "h"

Specyfikator formatu niestandardowego "h" reprezentuje godzinę jako liczbę z zakresu od 1 do 12; oznacza to, że godzina jest reprezentowana przez zegar 12-godzinny, który liczy całe 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 standardowy specyfikator formatu daty i godziny i zgłasza wartość FormatException. Aby uzyskać więcej informacji na temat korzystania z specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specyfikrs 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") reprezentuje godzinę jako liczbę z zakresu od 01 do 12; oznacza to, że godzina jest reprezentowana przez zegar 12-godzinny, który liczy całe 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 "H" z wielką literą

Specyfikator formatu niestandardowego "H"

Specyfikator formatu niestandardowego "H" reprezentuje godzinę jako liczbę z zakresu od 0 do 23; oznacza to, że godzina jest reprezentowana przez zegar 24-godzinny oparty na zero, który liczy 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 standardowy specyfikator formatu daty i godziny i zgłasza wartość FormatException. Aby uzyskać więcej informacji na temat korzystania z specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specyfikrs 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") reprezentuje godzinę jako liczbę z zakresu od 00 do 23; oznacza to, że godzina jest reprezentowana przez zegar 24-godzinny oparty na zero, który liczy 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 DateTime , ciąg wynikowy jest definiowany przez wartość DateTime.Kind właściwości:

  • Dla lokalnej strefy czasowej ( DateTime.Kind wartość DateTimeKind.Localwłaściwości ) ten specyfikator generuje ciąg wynikowy zawierający przesunięcie lokalne z uniwersalnego czasu koordynowanego (UTC), na przykład "-07:00".

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

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

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

Jeśli specyfikator formatu "K" jest używany bez innych specyfikatorów formatu niestandardowego, jest interpretowany jako standardowy specyfikator formatu daty i godziny i zgłasza FormatExceptionwartość . Aby uzyskać więcej informacji na temat korzystania z specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specyfikrs w dalszej części tego artykułu.

W poniższym przykładzie przedstawiono ciąg, który wynika z używania specyfikatora formatu niestandardowego "K" z różnymi DateTime wartościami i DateTimeOffset w systemie w strefie czasowej Pacyficznego 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" reprezentuje 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, jest interpretowany jako specyfikator formatu standardowego daty i godziny "m". Aby uzyskać więcej informacji na temat korzystania z specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specyfikrs 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") reprezentuje 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 "M" miesiąca

Specyfikator formatu niestandardowego "M"

Specyfikator formatu niestandardowego "M" reprezentuje miesiąc jako liczbę z zakresu od 1 do 12 (lub od 1 do 13 dla kalendarzy, które mają 13 miesięcy). 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, jest interpretowany jako specyfikator formatu daty i godziny standardowej "M". Aby uzyskać więcej informacji na temat korzystania z specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specyfikrs 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" reprezentuje miesiąc jako liczbę z zakresu od 01 do 12 (lub od 1 do 13 dla kalendarzy, które mają 13 miesięcy). 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. Zlokalizowana skrócona nazwa miesiąca jest pobierana z DateTimeFormatInfo.AbbreviatedMonthNames właściwości bieżącej lub określonej kultury. Jeśli w ciągu formatu niestandardowego istnieje specyfikator formatu niestandardowego "d" lub "dd", zostanie on zamiast tego pobrany z DateTimeFormatInfo.AbbreviatedMonthGenitiveNames właściwości .

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. Zlokalizowana nazwa miesiąca jest pobierana z DateTimeFormatInfo.MonthNames właściwości bieżącej lub określonej kultury. Jeśli w ciągu formatu niestandardowego istnieje specyfikator formatu niestandardowego "d" lub "dd", zostanie on zamiast tego pobrany z DateTimeFormatInfo.MonthGenitiveNames właściwości .

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 "s" w sekundach

Specyfikator formatu niestandardowego "s"

Specyfikator formatu niestandardowego "s" reprezentuje 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, jest interpretowany jako specyfikator formatu standardowego daty i godziny "s". Aby uzyskać więcej informacji na temat korzystania z specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specyfikrs 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 "ss" (plus dowolna liczba dodatkowych specyfikatorów "s") reprezentuje 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 Meridiem "t"

Specyfikator formatu niestandardowego "t"

Specyfikator formatu niestandardowego „t” przedstawia pierwszy znak oznaczenia AM/PM. Odpowiedni zlokalizowany designator jest pobierany z DateTimeFormatInfo.AMDesignator właściwości 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 formatu standardowego daty i godziny "t". Aby uzyskać więcej informacji na temat korzystania z specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specyfikrs 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 designator jest pobierany z DateTimeFormatInfo.AMDesignator właściwości 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.

Pamiętaj, aby użyć specyfikatora "tt" dla języków, dla których konieczne jest zachowanie rozróżnienia 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 "y" roku

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 korzystania z specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specyfikrs 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 "yyy"

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, który jest analizowany przy użyciu specyfikatora formatu niestandardowego "yyy" jest interpretowany na Calendar.TwoDigitYearMax podstawie właściwości bieżącego kalendarza dostawcy 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 CultureInfo tak, aby używał GregorianCalendar obiektu, którego TwoDigitYearMax właściwość została zmodyfikowana.

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

public class Example7
{
    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 "yyy"

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"

Przy DateTime użyciu wartości specyfikator formatu niestandardowego "z" reprezentuje podpisane przesunięcie określonej strefy czasowej z uniwersalnego czasu koordynowanego (UTC), mierzone 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 jednocyfrowe jest formatowane bez zera wiodącego.

W poniższej tabeli pokazano, jak zmienia się wartość przesunięcia w zależności od DateTimeKind.

DateTimeKind wartość Wartość przesunięcia
Local Podpisane przesunięcie strefy czasowej lokalnego systemu operacyjnego z czasu UTC.
Unspecified Podpisane przesunięcie strefy czasowej lokalnego systemu operacyjnego z czasu UTC.
Utc +0 w programach .NET Core i .NET 5+.

W programie .NET Framework podpisane przesunięcie strefy czasowej lokalnego systemu operacyjnego z czasu UTC.

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

Jeśli specyfikator formatu "z" jest używany bez innych specyfikatorów formatu niestandardowego, jest interpretowany jako standardowy specyfikator formatu daty i godziny i zgłasza wartość FormatException. Aby uzyskać więcej informacji na temat korzystania z specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specyfikrs 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 on .NET Framework
// Displays +0, +00, +00:00 on .NET Core and .NET 5+

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 on .NET Framework
' Displays +0, +00, +00:00 on .NET Core and .NET 5+

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"

Z wartościami DateTime specyfikator formatu niestandardowego "zz" reprezentuje podpisane przesunięcie określonej strefy czasowej z UTC mierzone 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 jednocyfrowe jest sformatowane z zerem wiodącym.

W poniższej tabeli pokazano, jak zmienia się wartość przesunięcia w zależności od DateTimeKind.

DateTimeKind wartość Wartość przesunięcia
Local Podpisane przesunięcie strefy czasowej lokalnego systemu operacyjnego z czasu UTC.
Unspecified Podpisane przesunięcie strefy czasowej lokalnego systemu operacyjnego z czasu UTC.
Utc +00 w programach .NET Core i .NET 5+.

W programie .NET Framework podpisane przesunięcie strefy czasowej lokalnego systemu operacyjnego z czasu UTC.

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

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 on .NET Framework
// Displays +0, +00, +00:00 on .NET Core and .NET 5+

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 on .NET Framework
' Displays +0, +00, +00:00 on .NET Core and .NET 5+

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"

Z wartościami DateTime specyfikator formatu niestandardowego "zzz" reprezentuje podpisane przesunięcie określonej strefy czasowej z UTC, mierzone w 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ższej tabeli pokazano, jak zmienia się wartość przesunięcia w zależności od DateTimeKind.

DateTimeKind wartość Wartość przesunięcia
Local Podpisane przesunięcie strefy czasowej lokalnego systemu operacyjnego z czasu UTC.
Unspecified Podpisane przesunięcie strefy czasowej lokalnego systemu operacyjnego z czasu UTC.
Utc +00:00 w programach .NET Core i .NET 5+.

W programie .NET Framework podpisane przesunięcie strefy czasowej lokalnego systemu operacyjnego z czasu UTC.

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

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 on .NET Framework
// Displays +0, +00, +00:00 on .NET Core and .NET 5+

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 on .NET Framework
' Displays +0, +00, +00:00 on .NET Core and .NET 5+

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 DateTimeFormatInfo.TimeSeparator właściwości bieżącej lub określonej kultury.

Uwaga

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

Jeśli specyfikator formatu ":" jest używany bez innych specyfikatorów formatu niestandardowego, jest interpretowany jako standardowy specyfikator formatu daty i godziny i zgłasza wartość FormatException. Aby uzyskać więcej informacji na temat korzystania z specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specyfikrs 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 dat jest pobierany z DateTimeFormatInfo.DateSeparator właściwości 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 generuje ciąg mm'/'dd'/'yyyy wynikowy, w którym "/" jest zawsze używany jako separator daty. Aby zmienić separator daty dla wszystkich dat kultury, zmień wartość DateTimeFormatInfo.DateSeparator właściwości bieżącej kultury lub utwórz wystąpienie DateTimeFormatInfo obiektu, przypisz znak do właściwości DateSeparator i wywołaj przeciążenie metody formatowania zawierającej IFormatProvider parametr.

Jeśli specyfikator formatu "/" jest używany bez innych specyfikatorów formatu niestandardowego, jest interpretowany jako standardowy specyfikator formatu daty i godziny i zgłasza FormatExceptionwartość . Aby uzyskać więcej informacji na temat korzystania z specyfikatora pojedynczego formatu, zobacz Using Single Custom Format Specyfikrs w dalszej części tego artykułu.

Powrót do tabeli

Literały znaków

Następujące znaki w niestandardowym ciągu formatu daty i godziny są zastrzeżone i są zawsze interpretowane jako znaki formatowania lub w przypadku "znaków specjalnych , '/i \.

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

Wszystkie inne znaki są zawsze interpretowane jako literały znaków, a 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 uwzględniana jest wielkość liter.

W poniższym przykładzie uwzględniono znaki literału "PST" (dla czasu pacyficznego) i "PDT" (dla pacyficznego czasu letniego) reprezentujące lokalną strefę czasową w ciągu formatu. Należy pamiętać, że ciąg jest uwzględniony w ciągu wynikowym i że ciąg, który zawiera lokalny ciąg strefy czasowej, również analizuje się pomyślnie.

using System;
using System.Globalization;

public class Example5
{
    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 wskazywania, że znaki mają być interpretowane jako znaki literału, a nie jako znaki rezerwowe, aby można je było uwzględnić w ciągu wynikowym lub pomyślnie przeanalizować w ciągu wejściowym:

  • Przez ucieczkę od każdego zastrzeżonego znaku. Aby uzyskać więcej informacji, zobacz Używanie znaku ucieczki.

Poniższy przykład zawiera znaki literału "pst" (czas standardowy pacyficznego) do reprezentowania lokalnej strefy czasowej w ciągu formatu. Ponieważ ciągi formatu "s" i "t" są ciągami formatu niestandardowego, oba znaki muszą być interpretowane jako literały znaków.

using System;
using System.Globalization;

public class Example3
{
    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 pst
//       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
  • Po ujmowaniu całego ciągu literału w cudzysłowach lub apostrofach. Poniższy przykład jest podobny do poprzedniego, z tą różnicą, że znak "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 Example6
{
    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 pst
//       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 specyfikatorów pojedynczego 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 prawidłowego specyfikatora formatu, zgłaszają wartość 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 zgłaszany jest wyjątek, ponieważ nie ma specyfikatora formatu daty i godziny "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 "%h" jest interpretowany jako niestandardowy ciąg formatu daty i godziny, który wyświetla godzinę reprezentowaną przez bieżącą wartość daty 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 uwzględnić ukośnik odwrotny w ciągu wynikowym, należy go usunąć za pomocą innego ukośnika odwrotnego (\\).

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      

ustawienia Panel sterowania

Ustawienia Opcje regionalne i językowe w programie Panel sterowania wpływają na ciąg wynikowy wygenerowany przez operację formatowania, która zawiera wiele niestandardowych specyfikatorów formatu daty i godziny. Te ustawienia służą do inicjowania DateTimeFormatInfo obiektu skojarzonego z bieżącą kulturą, która udostępnia wartości używane 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 używasz konstruktora CultureInfo(String) do utworzenia wystąpienia nowego CultureInfo obiektu, który reprezentuje tę samą kulturę co bieżąca kultura systemu, wszelkie dostosowania ustanowione przez element Opcje regionalne i językowe w Panel sterowania zostaną zastosowane do nowego CultureInfo obiektu. Konstruktor umożliwia CultureInfo(String, Boolean) utworzenie CultureInfo obiektu, który nie odzwierciedla dostosowań systemu.

Właściwości DateTimeFormatInfo

Formatowanie ma wpływ na właściwości bieżącego DateTimeFormatInfo obiektu, który jest dostarczany niejawnie przez bieżącą kulturę lub jawnie przez IFormatProvider parametr metody, która wywołuje formatowanie. Dla parametru IFormatProvider należy określić CultureInfo obiekt, który reprezentuje kulturę DateTimeFormatInfo lub obiekt.

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

Zobacz też