Standardowe ciągi formatu daty i godziny
Standardowy ciąg formatu daty i godziny używa pojedynczego znaku jako specyfikatora formatu, aby zdefiniować reprezentację tekstową DateTime lub wartość DateTimeOffset. Dowolny ciąg formatu daty i godziny zawierający więcej niż jeden znak, w tym biały znak, jest interpretowany jako niestandardowy ciąg formatu daty i godziny. Ciąg formatu standardowego lub niestandardowego można używać na dwa sposoby:
Aby zdefiniować ciąg, który wynika z operacji formatowania.
Aby zdefiniować tekstową reprezentację wartości daty i godziny, którą można przekonwertować na wartość DateTime lub DateTimeOffset przez operację analizowania.
Wskazówka
Możesz pobrać narzędzie formatowania , aplikację .NET Windows Forms, która umożliwia stosowanie ciągów formatu do wartości liczbowych lub daty i godziny oraz wyświetlania ciągu wynikowego. Kod źródłowy jest dostępny dla C# i Visual Basic.
Uwaga
Niektóre przykłady języka C# w tym artykule są uruchamiane w Try.NET wbudowanym modułu uruchamiającego kod i plac zabaw. Wybierz przycisk Uruchom, aby uruchomić przykład w oknie interaktywnym. Po wykonaniu kodu można go zmodyfikować i uruchomić zmodyfikowany kod, wybierając ponownie Uruchom. 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 wbudowanego modułu uruchamiającego kod Try.NET 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 typy DateTime, DateTimeOffseti TimeZoneInfo oraz ich składowe.
Tabela specyfikatorów formatu
W poniższej tabeli opisano standardowe specyfikatory formatu daty i godziny. Jeśli nie określono inaczej, określony standardowy specyfikator formatu daty i godziny tworzy identyczną reprezentację ciągu niezależnie od tego, czy jest używany z wartością DateTime czy DateTimeOffset. Aby uzyskać dodatkowe informacje na temat używania standardowych ciągów formatu daty i godziny, zobacz Ustawienia panelu sterowania i Właściwości DateTimeFormat Info.
Specyfikator formatu | Opis | Przykłady |
---|---|---|
"d" | Wzorzec daty krótkiej. Więcej informacji:specyfikator formatu daty krótkiej ("d"). |
2009-06-15T13:45:30 -> 6/15/2009 (en-US) 2009-06-15T13:45:30 -> 15/06/2009 (fr-FR) 2009-06-15T13:45:30 -> 2009/06/15 (ja-JP) |
"D" | Wzorzec daty długiej. Więcej informacji:specyfikator formatu daty długiej ("D"). |
2009-06-15T13:45:30 —> poniedziałek, 15 czerwca 2009 r. (en-US) 2009-06-15T13:45:30 -> понедельник, 15 июня 2009 г. (ru-RU) 2009-06-15T13:45:30 -> Montag, 15. Juni 2009 (de-DE) |
f | Wzorzec pełnej daty/godziny (godzina krótka). Więcej informacji: Specyfikator formatu pełnej daty krótkiej ("f"). |
2009-06-15T13:45:30 -> poniedziałek, 15 czerwca 2009 13:45 (en-US) 2009-06-15T13:45:30 -> den 15 juni 2009 13:45 (sv-SE) 2009-06-15T13:45:30 -> Δευτιρα, 15 Ιουνίου 2009 1:45 μμ (el-GR) |
„F” | Wzorzec pełnej daty/godziny (godzina długa). Więcej informacji: Specyfikator formatu daty pełnej daty długiej ("F"). |
2009-06-15T13:45:30 -> poniedziałek, 15 czerwca 2009 1:45:30 (en-US) 2009-06-15T13:45:30 -> den 15 juni 2009 13:45:30 (sv-SE) 2009-06-15T13:45:30 -> Δευτιρα, 15 Ιουνίου 2009 1:45:30 μμ (el-GR) |
„g” | Wzorzec ogólnej daty/godziny (godzina krótka). Więcej informacji: Specyfikator formatu daty ogólnej daty krótkiej ("g"). |
2009-06-15T13:45:30 -> 6/15/2009 1:45 (en-US) 2009-06-15T13:45:30 -> 15/06/2009 13:45 (es-ES) 2009-06-15T13:45:30 -> 2009/6/15 13:45 (zh-CN) |
„G” | Wzorzec ogólnej daty/godziny (godzina długa). Więcej informacji: Specyfikator formatu daty ogólnej daty długiej ("G"). |
2009-06-15T13:45:30 -> 6/15/2009 1:45:30 (en-US) 2009-06-15T13:45:30 -> 15/06/2009 13:45:30 (es-ES) 2009-06-15T13:45:30 -> 2009/6/15 13:45:30 (zh-CN) |
„M”, „m” | Wzorzec miesiąc/dzień. Więcej informacji: Specyfikator formatu miesiąca ("M", "m"). |
2009-06-15T13:45:30 —> 15 czerwca (en-US) 2009-06-15T13:45:30 -> 15. juni (da-DK) 2009-06-15T13:45:30 -> 15 Juni (id-ID) |
„O”, „o” | wzorzec daty/godziny w obie strony. Więcej informacji: Specyfikator formatu round-trip ("O", "o"). |
DateTime wartości: 2009-06-15T13:45:30 (DateTimeKind.Local) -> 2009-06-15T13:45:30.0000000-07:00 2009-06-15T13:45:30 (DateTimeKind.Utc) -> 2009-06-15T13:45:30.000000Z 2009-06-15T13:45:30 (DateTimeKind.Unspecified) -> 2009-06-15T13:45:30.0000000 DateTimeOffset wartości: 2009-06-15T13:45:30-07:00 --> 2009-06-15T13:45:30.0000000-07:00 |
„R”, „r” | Wzorzec RFC1123. Więcej informacji: specyfikator formatu RFC1123 ("R", "r"). |
DateTimeOffset dane wejściowe: 2009-06-15T13:45:30 -> Mon, 15 Czerwca 2009 20:45:30 GMT DateTime dane wejściowe: 2009-06-15T13:45:30 -> Mon, 15 Czerwca 2009 13:45:30 GMT |
„s” | Wzorzec sortowalnej daty/godziny. Więcej informacji: Specyfikator formatu sortowalnego ("s"). |
2009-06-15T13:45:30 (DateTimeKind.Local) —> 2009-06-15T13:45:30 2009-06-15T13:45:30 (DateTimeKind.Utc) —> 2009-06-15T13:45:30 |
t | Wzorzec godziny krótkiej. Więcej informacji: Specyfikator formatu skróconego ("t"). |
2009-06-15T13:45:30-1> :45 (en-US) 2009-06-15T13:45:30 -> 13:45 (hr-HR) 2009-06-15T13:45:30 -> 01:45 م (ar-EG) |
„T” | Wzorzec godziny długiej. Więcej informacji: Specyfikator formatu długiego ("T"). |
2009-06-15T13:45:30 -> 1:45:30 (en-US) 2009-06-15T13:45:30 -> 13:45:30 (hr-HR) 2009-06-15T13:45:30 -> 01:45:30 م (ar-EG) |
„u” | Wzorzec uniwersalnej sortowalnej daty/godziny. Więcej informacji: Specyfikator formatu uniwersalnego sortowania ("u"). |
Z wartością DateTime: 2009-06-15T13:45:30 -> 2009-06-15 13:45:30Z Z wartością DateTimeOffset: 2009-06-15T13:45:30 -> 2009-06-15 20:45:30Z |
"U" | Uniwersalny wzorzec pełnej daty/godziny. Więcej informacji: specyfikator formatu uniwersalnego pełnego ("U"). |
2009-06-15T13:45:30 -> poniedziałek, 15 czerwca 2009 18:45:30 (en-US) 2009-06-15T13:45:30 -> den 15 juni 2009 20:45:30 (sv-SE) 2009-06-15T13:45:30 -> Δευτιρα, 15 Ιουνίου 2009 8:45:30 μμ (el-GR) |
„Y”, „y” | Wzorzec roku i miesiąca. Więcej informacji: Specyfikator formatu miesiąca roku ("Y"). |
2009-06-15T13:45:30 —> czerwiec 2009 (en-US) 2009-06-15T13:45:30 -> juni 2009 (da-DK) 2009-06-15T13:45:30 -> Juni 2009 (id-ID) |
Jakikolwiek inny pojedynczy znak | Nieznany specyfikator. | Zgłasza FormatExceptionczasu wykonywania. |
Jak działają standardowe ciągi formatu
W operacji formatowania ciąg formatu standardowego jest po prostu aliasem ciągu formatu niestandardowego. Zaletą użycia aliasu w celu odwołania się do ciągu formatu niestandardowego jest to, że ciąg formatu niestandardowego może być różny, mimo że alias pozostaje niezmienny. Jest to ważne, ponieważ ciągi reprezentujące wartości daty i godziny są zazwyczaj różne w zależności od kultury. Na przykład ciąg formatu standardowego „d” wskazuje, że wartość daty i godziny zostanie wyświetlona przy użyciu wzorca daty krótkiej. Ten wzorzec dla niezmiennej kultury to „MM/dd/yyyy”. Dla kultury fr-FR jest to „dd/MM/yyyy”. Dla kultury ja-JP jest to „yyyy/MM/dd”.
Jeśli ciąg formatu standardowego w operacji formatowania jest mapowany na ciąg formatu niestandardowego danej kultury, aplikacja może definiować określoną kulturę, której ciągi formatu niestandardowego są używane na jeden z poniższych sposobów:
Można użyć domyślnej (bieżącej) kultury. W poniższym przykładzie data jest wyświetlana przy użyciu formatu daty krótkiej dla bieżącej kultury. Bieżącą kulturą jest w tym przypadku kultura en-US.
// Display using current (en-us) culture's short date format DateTime thisDate = new DateTime(2008, 3, 15); Console.WriteLine(thisDate.ToString("d")); // Displays 3/15/2008
' Display using current (en-us) culture's short date format Dim thisDate As Date = #03/15/2008# Console.WriteLine(thisDate.ToString("d")) ' Displays 3/15/2008
Można przekazać obiekt CultureInfo reprezentujący kulturę, której formatowanie ma być używane do metody, która ma parametr IFormatProvider. W poniższym przykładzie data jest wyświetlana przy użyciu formatu daty krótkiej dla kultury pt-BR.
// Display using pt-BR culture's short date format DateTime thisDate = new DateTime(2008, 3, 15); CultureInfo culture = new CultureInfo("pt-BR"); Console.WriteLine(thisDate.ToString("d", culture)); // Displays 15/3/2008
' Display using pt-BR culture's short date format Dim thisDate As Date = #03/15/2008# Dim culture As New CultureInfo("pt-BR") Console.WriteLine(thisDate.ToString("d", culture)) ' Displays 15/3/2008
Można przekazać obiekt DateTimeFormatInfo, który udostępnia informacje o formatowaniu do metody, która ma parametr IFormatProvider. Poniższy przykład przedstawia datę przy użyciu formatu daty krótkiej z obiektu DateTimeFormatInfo dla kultury hr-HR.
// Display using date format information from hr-HR culture DateTime thisDate = new DateTime(2008, 3, 15); DateTimeFormatInfo fmt = (new CultureInfo("hr-HR")).DateTimeFormat; Console.WriteLine(thisDate.ToString("d", fmt)); // Displays 15.3.2008
' Display using date format information from hr-HR culture Dim thisDate As Date = #03/15/2008# Dim fmt As DateTimeFormatInfo = (New CultureInfo("hr-HR")).DateTimeFormat Console.WriteLine(thisDate.ToString("d", fmt)) ' Displays 15.3.2008
Uwaga
Aby uzyskać informacje na temat dostosowywania wzorców lub ciągów używanych w formatowaniu wartości daty i godziny, zobacz temat klasy NumberFormatInfo.
W niektórych przypadkach ciąg formatu standardowego służy jako wygodny skrót dla dłuższego ciągu formatu niestandardowego, który jest niezmienny. Cztery ciągi formatu standardowego należą do tej kategorii: „O” (lub „o”), „R” (lub „r”), „s” i „u”. Te ciągi odpowiadają ciągom formatów niestandardowych, które są zdefiniowane przez niezmienną kulturę. Wytwarzają one reprezentacje wartości daty i godziny w postaci ciągu, które mają być identyczne dla różnych kultur. W poniższej tabeli przedstawiono informacje dotyczące tych czterech ciągów standardowych formatów daty i godziny.
Ciąg formatu standardowego | Zdefiniowana przez właściwość DateTimeFormatInfo.InvariantInfo | Ciąg formatu niestandardowego |
---|---|---|
„O” lub „o” | Żaden | yyyy'-'MM'-'dd'T'HH':'mm':'ss''. fffffffK |
„R” lub „r” | RFC1123Pattern | ddd, dd MMM yyyy HH':'mm':'ss 'GMT' |
„s” | SortableDateTimePattern | yyyy'-'MM'-'dd'T'HH':'mm':'ss |
„u” | UniversalSortableDateTimePattern | yyyy'-'MM'-'dd HH':'mm':'ss'Z' |
Ciągi formatu standardowego mogą być również używane w operacjach analizowania za pomocą metod DateTime.ParseExact lub DateTimeOffset.ParseExact, które wymagają, aby ciąg wejściowy był dokładnie zgodny z określonym wzorcem, aby operacja analizy zakończyła się powodzeniem. Wiele standardowych ciągów formatu mapuje się na wiele ciągów formatu niestandardowego, więc wartość daty i godziny może być reprezentowana w różnych formatach, a operacja analizowania nadal powiedzie się. Można określić ciąg formatu niestandardowego lub ciągi, które odpowiadają ciągowi formatu standardowego, wywołując metodę DateTimeFormatInfo.GetAllDateTimePatterns(Char). W poniższym przykładzie przedstawiono niestandardowe ciągi formatu mapujące ciągi formatu "d" (wzorzec daty krótkiej) na standardowy ciąg formatu.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
Console.WriteLine("'d' standard format string:");
foreach (var customString in DateTimeFormatInfo.CurrentInfo.GetAllDateTimePatterns('d'))
Console.WriteLine($" {customString}");
}
}
// The example displays the following output:
// 'd' standard format string:
// M/d/yyyy
// M/d/yy
// MM/dd/yy
// MM/dd/yyyy
// yy/MM/dd
// yyyy-MM-dd
// dd-MMM-yy
Imports System.Globalization
Module Example
Public Sub Main()
Console.WriteLine("'d' standard format string:")
For Each customString In DateTimeFormatInfo.CurrentInfo.GetAllDateTimePatterns("d"c)
Console.WriteLine(" {0}", customString)
Next
End Sub
End Module
' The example displays the following output:
' 'd' standard format string:
' M/d/yyyy
' M/d/yy
' MM/dd/yy
' MM/dd/yyyy
' yy/MM/dd
' yyyy-MM-dd
' dd-MMM-yy
W poniższych sekcjach opisano standardowe specyfikatory formatu dla wartości DateTime i DateTimeOffset.
Formaty dat
Ta grupa zawiera następujące formaty:
Specyfikator formatu daty krótkiej ("d")
Specyfikator formatu standardowego "d" reprezentuje niestandardowy ciąg formatu daty i godziny zdefiniowany przez właściwość DateTimeFormatInfo.ShortDatePattern określonej kultury. Na przykład ciąg formatu niestandardowego zwracany przez właściwość ShortDatePattern niezmiennej kultury to "MM/dd/yyyy".
W poniższej tabeli wymieniono właściwości obiektu DateTimeFormatInfo, które kontrolują formatowanie zwracanego ciągu.
Nieruchomość | Opis |
---|---|
ShortDatePattern | Definiuje ogólny format ciągu wynikowego. |
DateSeparator | Definiuje ciąg oddzielający składniki roku, miesiąca i dnia daty. |
W poniższym przykładzie użyto specyfikatora formatu "d", aby wyświetlić wartość daty i godziny.
DateTime date1 = new DateTime(2008,4, 10);
Console.WriteLine(date1.ToString("d", DateTimeFormatInfo.InvariantInfo));
// Displays 04/10/2008
Console.WriteLine(date1.ToString("d",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays 4/10/2008
Console.WriteLine(date1.ToString("d",
CultureInfo.CreateSpecificCulture("en-NZ")));
// Displays 10/04/2008
Console.WriteLine(date1.ToString("d",
CultureInfo.CreateSpecificCulture("de-DE")));
// Displays 10.04.2008
Dim date1 As Date = #4/10/2008#
Console.WriteLine(date1.ToString("d", DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008
Console.WriteLine(date1.ToString("d", _
CultureInfo.CreateSpecificCulture("en-US")))
' Displays 4/10/2008
Console.WriteLine(date1.ToString("d", _
CultureInfo.CreateSpecificCulture("en-NZ")))
' Displays 10/04/2008
Console.WriteLine(date1.ToString("d", _
CultureInfo.CreateSpecificCulture("de-DE")))
' Displays 10.04.2008
Specyfikator formatu daty długiej ("D")
Specyfikator formatu standardowego "D" reprezentuje niestandardowy ciąg formatu daty i godziny zdefiniowany przez bieżącą właściwość DateTimeFormatInfo.LongDatePattern. Na przykład ciąg formatu niestandardowego dla niezmiennej kultury to „dddd, dd MMMM yyyy”.
W poniższej tabeli wymieniono właściwości obiektu DateTimeFormatInfo, który kontroluje formatowanie zwracanego ciągu.
Nieruchomość | Opis |
---|---|
LongDatePattern | Definiuje ogólny format ciągu wynikowego. |
DayNames | Definiuje zlokalizowane nazwy dni, które mogą być wyświetlane w ciągu wynikowym. |
MonthNames | Definiuje zlokalizowane nazwy miesięcy, które mogą być wyświetlane w ciągu wynikowym. |
W poniższym przykładzie użyto specyfikatora formatu „D”, aby wyświetlić wartość daty i godziny.
DateTime date1 = new DateTime(2008, 4, 10);
Console.WriteLine(date1.ToString("D",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Thursday, April 10, 2008
Console.WriteLine(date1.ToString("D",
CultureInfo.CreateSpecificCulture("pt-BR")));
// Displays quinta-feira, 10 de abril de 2008
Console.WriteLine(date1.ToString("D",
CultureInfo.CreateSpecificCulture("es-MX")));
// Displays jueves, 10 de abril de 2008
Dim date1 As Date = #4/10/2008#
Console.WriteLine(date1.ToString("D", _
CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008
Console.WriteLine(date1.ToString("D", _
CultureInfo.CreateSpecificCulture("pt-BR")))
' Displays quinta-feira, 10 de abril de 2008
Console.WriteLine(date1.ToString("D", _
CultureInfo.CreateSpecificCulture("es-MX")))
' Displays jueves, 10 de abril de 2008
Formaty daty i godziny
Ta grupa zawiera następujące formaty:
- Specyfikator formatu daty pełnej daty krótkiej ("f")
- Specyfikator formatu daty pełnej daty długiej ("F")
- Specyfikator formatu daty ogólnej daty krótkiej ("g")
- Specyfikator formatu daty ogólnej daty długiej ("G")
- Specyfikator formatu round-trip ("O", "o")
- Specyfikator formatu RFC1123 ("R", "r")
- Specyfikator formatu sortowalnego ("s")
- Specyfikator formatu uniwersalnego sortowania ("u")
- specyfikator formatu uniwersalnego pełnego ("U")
Specyfikator formatu daty pełnej daty krótkiej ("f")
Specyfikator formatu standardowego „f” reprezentuje kombinację wzorców daty długiej („D”) i godziny krótkiej („t”), rozdzielonych spacją.
Ciąg wynikowy ma wpływ na informacje o formatowaniu określonego obiektu DateTimeFormatInfo. W poniższej tabeli wymieniono właściwości obiektu DateTimeFormatInfo, które mogą kontrolować formatowanie zwracanego ciągu. Specyfikator formatu niestandardowego zwrócony przez DateTimeFormatInfo.LongDatePattern i DateTimeFormatInfo.ShortTimePattern właściwości niektórych kultur może nie używać wszystkich właściwości.
Nieruchomość | Opis |
---|---|
LongDatePattern | Definiuje format składnika daty ciągu wynikowego. |
ShortTimePattern | Definiuje format składnika czasu ciągu wynikowego. |
DayNames | Definiuje zlokalizowane nazwy dni, które mogą być wyświetlane w ciągu wynikowym. |
MonthNames | Definiuje zlokalizowane nazwy miesięcy, które mogą być wyświetlane w ciągu wynikowym. |
TimeSeparator | Definiuje ciąg, który oddziela składniki godziny, minuty i sekundy czasu. |
AMDesignator | Definiuje ciąg, który wskazuje godziny od północy do południa w 12-godzinnym zegarze. |
PMDesignator | Definiuje ciąg, który wskazuje godziny od południa do północy w 12-godzinnym zegarze. |
W poniższym przykładzie użyto specyfikatora formatu „f”, aby wyświetlić wartość daty i godziny.
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("f",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Thursday, April 10, 2008 6:30 AM
Console.WriteLine(date1.ToString("f",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays jeudi 10 avril 2008 06:30
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("f", _
CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 6:30 AM
Console.WriteLine(date1.ToString("f", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays jeudi 10 avril 2008 06:30
Specyfikator formatu daty pełnej daty długiej ("F")
Specyfikator formatu standardowego "F" reprezentuje niestandardowy ciąg formatu daty i godziny zdefiniowany przez bieżącą właściwość DateTimeFormatInfo.FullDateTimePattern. Na przykład ciąg formatu niestandardowego dla niezmiennej kultury to „dddd, dd MMMM yyyy HH:mm:ss”.
W poniższej tabeli wymieniono właściwości obiektu DateTimeFormatInfo, które mogą kontrolować formatowanie zwracanego ciągu. Specyfikator formatu niestandardowego zwracany przez właściwość FullDateTimePattern niektórych kultur może nie korzystać ze wszystkich właściwości.
Nieruchomość | Opis |
---|---|
FullDateTimePattern | Definiuje ogólny format ciągu wynikowego. |
DayNames | Definiuje zlokalizowane nazwy dni, które mogą być wyświetlane w ciągu wynikowym. |
MonthNames | Definiuje zlokalizowane nazwy miesięcy, które mogą być wyświetlane w ciągu wynikowym. |
TimeSeparator | Definiuje ciąg, który oddziela składniki godziny, minuty i sekundy czasu. |
AMDesignator | Definiuje ciąg, który wskazuje godziny od północy do południa w 12-godzinnym zegarze. |
PMDesignator | Definiuje ciąg, który wskazuje godziny od południa do północy w 12-godzinnym zegarze. |
W poniższym przykładzie użyto specyfikatora formatu „F”, aby wyświetlić wartość daty i godziny.
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("F",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Thursday, April 10, 2008 6:30:00 AM
Console.WriteLine(date1.ToString("F",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays jeudi 10 avril 2008 06:30:00
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("F", _
CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 6:30:00 AM
Console.WriteLine(date1.ToString("F", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays jeudi 10 avril 2008 06:30:00
Specyfikator formatu daty ogólnej daty krótkiej ("g")
Specyfikator formatu standardowego „g” reprezentuje kombinację wzorców daty krótkiej („g”) i godziny krótkiej („t”), rozdzielonych spacją.
Ciąg wynikowy ma wpływ na informacje o formatowaniu określonego obiektu DateTimeFormatInfo. W poniższej tabeli wymieniono właściwości obiektu DateTimeFormatInfo, które mogą kontrolować formatowanie zwracanego ciągu. Specyfikator formatu niestandardowego zwracany przez DateTimeFormatInfo.ShortDatePattern i DateTimeFormatInfo.ShortTimePattern właściwości niektórych kultur może nie korzystać ze wszystkich właściwości.
Nieruchomość | Opis |
---|---|
ShortDatePattern | Definiuje format składnika daty ciągu wynikowego. |
ShortTimePattern | Definiuje format składnika czasu ciągu wynikowego. |
DateSeparator | Definiuje ciąg oddzielający składniki roku, miesiąca i dnia daty. |
TimeSeparator | Definiuje ciąg, który oddziela składniki godziny, minuty i sekundy czasu. |
AMDesignator | Definiuje ciąg, który wskazuje godziny od północy do południa w 12-godzinnym zegarze. |
PMDesignator | Definiuje ciąg, który wskazuje godziny od południa do północy w 12-godzinnym zegarze. |
W poniższym przykładzie użyto specyfikatora formatu „g”, aby wyświetlić wartość daty i godziny.
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("g",
DateTimeFormatInfo.InvariantInfo));
// Displays 04/10/2008 06:30
Console.WriteLine(date1.ToString("g",
CultureInfo.CreateSpecificCulture("en-us")));
// Displays 4/10/2008 6:30 AM
Console.WriteLine(date1.ToString("g",
CultureInfo.CreateSpecificCulture("fr-BE")));
// Displays 10/04/2008 6:30
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("g", _
DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008 06:30
Console.WriteLine(date1.ToString("g", _
CultureInfo.CreateSpecificCulture("en-us")))
' Displays 4/10/2008 6:30 AM
Console.WriteLine(date1.ToString("g", _
CultureInfo.CreateSpecificCulture("fr-BE")))
' Displays 10/04/2008 6:30
Specyfikator formatu daty ogólnej daty długiej ("G")
Specyfikator formatu standardowego „G” reprezentuje kombinację wzorców daty krótkiej („d”) i godziny długiej („T”), rozdzielonych spacją.
Ciąg wynikowy ma wpływ na informacje o formatowaniu określonego obiektu DateTimeFormatInfo. W poniższej tabeli wymieniono właściwości obiektu DateTimeFormatInfo, które mogą kontrolować formatowanie zwracanego ciągu. Specyfikator formatu niestandardowego zwracany przez DateTimeFormatInfo.ShortDatePattern i DateTimeFormatInfo.LongTimePattern właściwości niektórych kultur może nie korzystać ze wszystkich właściwości.
Nieruchomość | Opis |
---|---|
ShortDatePattern | Definiuje format składnika daty ciągu wynikowego. |
LongTimePattern | Definiuje format składnika czasu ciągu wynikowego. |
DateSeparator | Definiuje ciąg oddzielający składniki roku, miesiąca i dnia daty. |
TimeSeparator | Definiuje ciąg, który oddziela składniki godziny, minuty i sekundy czasu. |
AMDesignator | Definiuje ciąg, który wskazuje godziny od północy do południa w 12-godzinnym zegarze. |
PMDesignator | Definiuje ciąg, który wskazuje godziny od południa do północy w 12-godzinnym zegarze. |
W poniższym przykładzie użyto specyfikatora formatu „G”, aby wyświetlić wartość daty i godziny.
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("G",
DateTimeFormatInfo.InvariantInfo));
// Displays 04/10/2008 06:30:00
Console.WriteLine(date1.ToString("G",
CultureInfo.CreateSpecificCulture("en-us")));
// Displays 4/10/2008 6:30:00 AM
Console.WriteLine(date1.ToString("G",
CultureInfo.CreateSpecificCulture("nl-BE")));
// Displays 10/04/2008 6:30:00
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("G", _
DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008 06:30:00
Console.WriteLine(date1.ToString("G", _
CultureInfo.CreateSpecificCulture("en-us")))
' Displays 4/10/2008 6:30:00 AM
Console.WriteLine(date1.ToString("G", _
CultureInfo.CreateSpecificCulture("nl-BE")))
' Displays 10/04/2008 6:30:00
Specyfikator formatu round-trip ("O", "o")
Specyfikator formatu standardowego "O" lub "o" reprezentuje niestandardowy ciąg formatu daty i godziny przy użyciu wzorca, który zachowuje informacje o strefie czasowej i emituje ciąg wynikowy zgodny z normą ISO 8601. W przypadku wartości DateTime ten specyfikator formatu jest przeznaczony do zachowywania wartości daty i godziny wraz z właściwością DateTime.Kind w tekście. Sformatowany ciąg można przeanalizować za pomocą metody DateTime.Parse(String, IFormatProvider, DateTimeStyles) lub DateTime.ParseExact, jeśli parametr styles
jest ustawiony na wartość DateTimeStyles.RoundtripKind.
Specyfikator formatu standardowego "O" lub "o" odpowiada "yyyy'-'MM'-'dd'T'HH':'mm'ss'". ciąg formatu niestandardowego fffffK dla wartości DateTime i do "yyyy'-MM'-'dd'T'HH':'mm':'ss'". ciąg formatu niestandardowego fffffffzzz dla wartości DateTimeOffset. W tym ciągu pary pojedynczych znaków cudzysłowu rozdzielające poszczególne znaki, takie jak łączniki, dwukropki i litera "T", wskazują, że pojedynczy znak jest literałem, którego nie można zmienić. Apostrofy nie są wyświetlane w ciągu wyjściowym.
Specyfikator formatu standardowego "O" lub "o" (i "yyyy'-'MM'-dd'T'HH':'mm'ss'". Ciąg formatu niestandardowego fffffK) wykorzystuje trzy sposoby, na które iso 8601 reprezentuje informacje o strefie czasowej w celu zachowania właściwości Kind wartości DateTime:
Składnik strefy czasowej wartości daty i godziny DateTimeKind.Local jest przesunięciem z utc (na przykład +01:00, -07:00). Wszystkie DateTimeOffset wartości są również reprezentowane w tym formacie.
Składnik strefy czasowej wartości daty i godziny DateTimeKind.Utc używa wartości "Z" (co oznacza przesunięcie zerowe) do reprezentowania czasu UTC.
DateTimeKind.Unspecified wartości daty i godziny nie zawierają informacji o strefie czasowej.
Ponieważ specyfikator formatu standardowego "O" lub "o" jest zgodny ze standardem międzynarodowym, operacja formatowania lub analizowania używająca specyfikatora zawsze używa niezmiennej kultury i kalendarza gregoriańskiego.
Ciągi przekazywane do Parse
, TryParse
, ParseExact
i TryParseExact
metod DateTime i DateTimeOffset można przeanalizować przy użyciu specyfikatora formatu "O" lub "o", jeśli znajdują się w jednym z tych formatów. W przypadku obiektów DateTime przeciążenie analizy, które wywołujesz, powinno również zawierać parametr styles
z wartością DateTimeStyles.RoundtripKind. Należy pamiętać, że jeśli wywołasz metodę analizowania z ciągiem formatu niestandardowego, który odpowiada specyfikatorowi formatu "O" lub "o", nie uzyskasz tych samych wyników co "O" lub "o". Wynika to z faktu, że metody analizowania używające ciągu formatu niestandardowego nie mogą przeanalizować ciągu reprezentującego wartości daty i godziny, które nie mają składnika strefy czasowej lub używają ciągu "Z", aby wskazać czas UTC.
W poniższym przykładzie użyto specyfikatora formatu "o", aby wyświetlić serię wartości DateTime i wartość DateTimeOffset w systemie w strefie czasowej Pacyfik USA.
using System;
public class Example
{
public static void Main()
{
DateTime dat = new DateTime(2009, 6, 15, 13, 45, 30,
DateTimeKind.Unspecified);
Console.WriteLine("{0} ({1}) --> {0:O}", dat, dat.Kind);
DateTime uDat = new DateTime(2009, 6, 15, 13, 45, 30,
DateTimeKind.Utc);
Console.WriteLine("{0} ({1}) --> {0:O}", uDat, uDat.Kind);
DateTime lDat = new DateTime(2009, 6, 15, 13, 45, 30,
DateTimeKind.Local);
Console.WriteLine("{0} ({1}) --> {0:O}\n", lDat, lDat.Kind);
DateTimeOffset dto = new DateTimeOffset(lDat);
Console.WriteLine($"{dto} --> {dto:O}");
}
}
// The example displays the following output:
// 6/15/2009 1:45:30 PM (Unspecified) --> 2009-06-15T13:45:30.0000000
// 6/15/2009 1:45:30 PM (Utc) --> 2009-06-15T13:45:30.0000000Z
// 6/15/2009 1:45:30 PM (Local) --> 2009-06-15T13:45:30.0000000-07:00
//
// 6/15/2009 1:45:30 PM -07:00 --> 2009-06-15T13:45:30.0000000-07:00
Module Example
Public Sub Main()
Dim dat As New Date(2009, 6, 15, 13, 45, 30,
DateTimeKind.Unspecified)
Console.WriteLine("{0} ({1}) --> {0:O}", dat, dat.Kind)
Dim uDat As New Date(2009, 6, 15, 13, 45, 30, DateTimeKind.Utc)
Console.WriteLine("{0} ({1}) --> {0:O}", uDat, uDat.Kind)
Dim lDat As New Date(2009, 6, 15, 13, 45, 30, DateTimeKind.Local)
Console.WriteLine("{0} ({1}) --> {0:O}", lDat, lDat.Kind)
Console.WriteLine()
Dim dto As New DateTimeOffset(lDat)
Console.WriteLine("{0} --> {0:O}", dto)
End Sub
End Module
' The example displays the following output:
' 6/15/2009 1:45:30 PM (Unspecified) --> 2009-06-15T13:45:30.0000000
' 6/15/2009 1:45:30 PM (Utc) --> 2009-06-15T13:45:30.0000000Z
' 6/15/2009 1:45:30 PM (Local) --> 2009-06-15T13:45:30.0000000-07:00
'
' 6/15/2009 1:45:30 PM -07:00 --> 2009-06-15T13:45:30.0000000-07:00
W poniższym przykładzie użyto specyfikatora formatu "o", aby utworzyć sformatowany ciąg, a następnie przywróci oryginalną wartość daty i godziny, wywołując metodę Parse
daty i godziny.
// Round-trip DateTime values.
DateTime originalDate, newDate;
string dateString;
// Round-trip a local time.
originalDate = DateTime.SpecifyKind(new DateTime(2008, 4, 10, 6, 30, 0), DateTimeKind.Local);
dateString = originalDate.ToString("o");
newDate = DateTime.Parse(dateString, null, DateTimeStyles.RoundtripKind);
Console.WriteLine($"Round-tripped {originalDate} {originalDate.Kind} to {newDate} {newDate.Kind}.");
// Round-trip a UTC time.
originalDate = DateTime.SpecifyKind(new DateTime(2008, 4, 12, 9, 30, 0), DateTimeKind.Utc);
dateString = originalDate.ToString("o");
newDate = DateTime.Parse(dateString, null, DateTimeStyles.RoundtripKind);
Console.WriteLine($"Round-tripped {originalDate} {originalDate.Kind} to {newDate} {newDate.Kind}.");
// Round-trip time in an unspecified time zone.
originalDate = DateTime.SpecifyKind(new DateTime(2008, 4, 13, 12, 30, 0), DateTimeKind.Unspecified);
dateString = originalDate.ToString("o");
newDate = DateTime.Parse(dateString, null, DateTimeStyles.RoundtripKind);
Console.WriteLine($"Round-tripped {originalDate} {originalDate.Kind} to {newDate} {newDate.Kind}.");
// Round-trip a DateTimeOffset value.
DateTimeOffset originalDTO = new DateTimeOffset(2008, 4, 12, 9, 30, 0, new TimeSpan(-8, 0, 0));
dateString = originalDTO.ToString("o");
DateTimeOffset newDTO = DateTimeOffset.Parse(dateString, null, DateTimeStyles.RoundtripKind);
Console.WriteLine($"Round-tripped {originalDTO} to {newDTO}.");
// The example displays the following output:
// Round-tripped 4/10/2008 6:30:00 AM Local to 4/10/2008 6:30:00 AM Local.
// Round-tripped 4/12/2008 9:30:00 AM Utc to 4/12/2008 9:30:00 AM Utc.
// Round-tripped 4/13/2008 12:30:00 PM Unspecified to 4/13/2008 12:30:00 PM Unspecified.
// Round-tripped 4/12/2008 9:30:00 AM -08:00 to 4/12/2008 9:30:00 AM -08:00.
' Round-trip DateTime values.
Dim originalDate, newDate As Date
Dim dateString As String
' Round-trip a local time.
originalDate = Date.SpecifyKind(#4/10/2008 6:30AM#, DateTimeKind.Local)
dateString = originalDate.ToString("o")
newDate = Date.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind, _
newDate, newDate.Kind)
' Round-trip a UTC time.
originalDate = Date.SpecifyKind(#4/12/2008 9:30AM#, DateTimeKind.Utc)
dateString = originalDate.ToString("o")
newDate = Date.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind, _
newDate, newDate.Kind)
' Round-trip time in an unspecified time zone.
originalDate = Date.SpecifyKind(#4/13/2008 12:30PM#, DateTimeKind.Unspecified)
dateString = originalDate.ToString("o")
newDate = Date.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind, _
newDate, newDate.Kind)
' Round-trip a DateTimeOffset value.
Dim originalDTO As New DateTimeOffset(#4/12/2008 9:30AM#, New TimeSpan(-8, 0, 0))
dateString = originalDTO.ToString("o")
Dim newDTO As DateTimeOffset = DateTimeOffset.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} to {1}.", originalDTO, newDTO)
' The example displays the following output:
' Round-tripped 4/10/2008 6:30:00 AM Local to 4/10/2008 6:30:00 AM Local.
' Round-tripped 4/12/2008 9:30:00 AM Utc to 4/12/2008 9:30:00 AM Utc.
' Round-tripped 4/13/2008 12:30:00 PM Unspecified to 4/13/2008 12:30:00 PM Unspecified.
' Round-tripped 4/12/2008 9:30:00 AM -08:00 to 4/12/2008 9:30:00 AM -08:00.
Specyfikator formatu RFC1123 ("R", "r")
Specyfikator formatu standardowego "R" lub "r" reprezentuje niestandardowy ciąg formatu daty i godziny zdefiniowany przez właściwość DateTimeFormatInfo.RFC1123Pattern. Wzorzec odzwierciedla zdefiniowany standard, a właściwość jest tylko do odczytu. Dlatego też zawsze jest taki sam, niezależnie od używanej kultury oraz dostarczonego dostawcy formatów. Ciąg formatu niestandardowego to „ddd, dd MMM yyyy HH':'mm':'ss 'GMT'”. Gdy jest używany ten specyfikator formatu standardowego, w operacji formatowania lub analizowania zawsze jest używana niezmienna kultura.
Na ciąg wynikowy mają wpływ następujące właściwości obiektu DateTimeFormatInfo zwróconego przez właściwość DateTimeFormatInfo.InvariantInfo reprezentującą niezmienną kulturę.
Nieruchomość | Opis |
---|---|
RFC1123Pattern | Definiuje format ciągu wynikowego. |
AbbreviatedDayNames | Definiuje skrócone nazwy dni, które mogą być wyświetlane w ciągu wynikowym. |
AbbreviatedMonthNames | Definiuje skrócone nazwy miesięcy, które mogą być wyświetlane w ciągu wynikowym. |
Mimo że standard RFC 1123 wyraża czas jako uniwersalny czas koordynowany (UTC), operacja formatowania nie modyfikuje wartości obiektu DateTime sformatowanego. W związku z tym należy przekonwertować wartość DateTime na UTC, wywołując metodę DateTime.ToUniversalTime przed wykonaniem operacji formatowania. Natomiast DateTimeOffset wartości wykonują tę konwersję automatycznie; Nie ma potrzeby wywoływania metody DateTimeOffset.ToUniversalTime przed operacją formatowania.
W poniższym przykładzie użyto specyfikatora formatu "r", aby wyświetlić DateTime i wartość DateTimeOffset w systemie w strefie czasowej Pacyfik USA.
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
DateTimeOffset dateOffset = new DateTimeOffset(date1,
TimeZoneInfo.Local.GetUtcOffset(date1));
Console.WriteLine(date1.ToUniversalTime().ToString("r"));
// Displays Thu, 10 Apr 2008 13:30:00 GMT
Console.WriteLine(dateOffset.ToUniversalTime().ToString("r"));
// Displays Thu, 10 Apr 2008 13:30:00 GMT
Dim date1 As Date = #4/10/2008 6:30AM#
Dim dateOffset As New DateTimeOffset(date1, TimeZoneInfo.Local.GetUtcOFfset(date1))
Console.WriteLine(date1.ToUniversalTime.ToString("r"))
' Displays Thu, 10 Apr 2008 13:30:00 GMT
Console.WriteLine(dateOffset.ToUniversalTime.ToString("r"))
' Displays Thu, 10 Apr 2008 13:30:00 GMT
Specyfikator formatu sortowalnego ("s")
Specyfikator formatu standardowego "s" reprezentuje niestandardowy ciąg formatu daty i godziny zdefiniowany przez właściwość DateTimeFormatInfo.SortableDateTimePattern. Wzorzec odzwierciedla zdefiniowany standard (ISO 8601), a właściwość jest tylko do odczytu. Dlatego też zawsze jest taki sam, niezależnie od używanej kultury oraz dostarczonego dostawcy formatów. Ciąg formatu niestandardowego to „yyyy'-'MM'-'dd'T'HH':'mm':'ss”.
Celem specyfikatora formatu "s" jest wygenerowanie ciągów wyników, które sortują spójnie w kolejności rosnącej lub malejącej na podstawie wartości daty i godziny. W rezultacie, chociaż specyfikator formatu standardowego "s" reprezentuje wartość daty i godziny w spójnym formacie, operacja formatowania nie modyfikuje wartości obiektu daty i godziny sformatowanego w celu odzwierciedlenia jego właściwości DateTime.Kind lub jej wartości DateTimeOffset.Offset. Na przykład ciągi wyników generowane przez formatowanie wartości daty i godziny 2014-11-15T18:32:17+00:00 i 2014-11-15T18:32:17+08:00 są identyczne.
Gdy jest używany ten specyfikator formatu standardowego, w operacji formatowania lub analizowania zawsze jest używana niezmienna kultura.
W poniższym przykładzie użyto specyfikatora formatu "s", aby wyświetlić DateTime i wartość DateTimeOffset w systemie w strefie czasowej Pacyficznego Stanów Zjednoczonych.
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("s"));
// Displays 2008-04-10T06:30:00
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("s"))
' Displays 2008-04-10T06:30:00
Specyfikator formatu uniwersalnego sortowania ("u")
Specyfikator formatu standardowego "u" reprezentuje niestandardowy ciąg formatu daty i godziny zdefiniowany przez właściwość DateTimeFormatInfo.UniversalSortableDateTimePattern. Wzorzec odzwierciedla zdefiniowany standard, a właściwość jest tylko do odczytu. Dlatego też zawsze jest taki sam, niezależnie od używanej kultury oraz dostarczonego dostawcy formatów. Ciąg formatu niestandardowego to „yyyy'-'MM'-'dd HH':'mm':'ss'Z'”. Gdy jest używany ten specyfikator formatu standardowego, w operacji formatowania lub analizowania zawsze jest używana niezmienna kultura.
Mimo że ciąg wynikowy powinien wyrazić czas jako uniwersalny czas koordynowany (UTC), podczas operacji formatowania nie jest wykonywana konwersja oryginalnej wartości DateTime. W związku z tym należy przekonwertować wartość DateTime na utc, wywołując metodę DateTime.ToUniversalTime przed jej sformatowaniem. Natomiast DateTimeOffset wartości wykonują tę konwersję automatycznie; nie ma potrzeby wywoływania metody DateTimeOffset.ToUniversalTime przed operacją formatowania.
W poniższym przykładzie użyto specyfikatora formatu „u”, aby wyświetlić wartość daty i godziny.
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToUniversalTime().ToString("u"));
// Displays 2008-04-10 13:30:00Z
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToUniversalTime.ToString("u"))
' Displays 2008-04-10 13:30:00Z
Specyfikator formatu uniwersalnego pełnego ("U")
Specyfikator formatu standardowego "U" reprezentuje niestandardowy ciąg formatu daty i godziny zdefiniowany przez właściwość DateTimeFormatInfo.FullDateTimePattern określonej kultury. Wzorzec jest taki sam jak wzorzec "F". Jednak wartość DateTime jest automatycznie konwertowana na czas UTC, zanim zostanie sformatowana.
W poniższej tabeli wymieniono właściwości obiektu DateTimeFormatInfo, które mogą kontrolować formatowanie zwracanego ciągu. Specyfikator formatu niestandardowego zwracany przez właściwość FullDateTimePattern niektórych kultur może nie korzystać ze wszystkich właściwości.
Nieruchomość | Opis |
---|---|
FullDateTimePattern | Definiuje ogólny format ciągu wynikowego. |
DayNames | Definiuje zlokalizowane nazwy dni, które mogą być wyświetlane w ciągu wynikowym. |
MonthNames | Definiuje zlokalizowane nazwy miesięcy, które mogą być wyświetlane w ciągu wynikowym. |
TimeSeparator | Definiuje ciąg, który oddziela składniki godziny, minuty i sekundy czasu. |
AMDesignator | Definiuje ciąg, który wskazuje godziny od północy do południa w 12-godzinnym zegarze. |
PMDesignator | Definiuje ciąg, który wskazuje godziny od południa do północy w 12-godzinnym zegarze. |
Specyfikator formatu "U" nie jest obsługiwany przez typ DateTimeOffset i zgłasza FormatException, jeśli jest używany do formatowania wartości DateTimeOffset.
W poniższym przykładzie użyto specyfikatora formatu "U", aby wyświetlić wartość daty i godziny.
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("U",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Thursday, April 10, 2008 1:30:00 PM
Console.WriteLine(date1.ToString("U",
CultureInfo.CreateSpecificCulture("sv-FI")));
// Displays den 10 april 2008 13:30:00
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("U", CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 1:30:00 PM
Console.WriteLine(date1.ToString("U", CultureInfo.CreateSpecificCulture("sv-FI")))
' Displays den 10 april 2008 13:30:00
Formaty czasu
Ta grupa zawiera następujące formaty:
Specyfikator formatu czasowego ("t")
Specyfikator formatu standardowego "t" reprezentuje niestandardowy ciąg formatu daty i godziny zdefiniowany przez bieżącą właściwość DateTimeFormatInfo.ShortTimePattern. Na przykład ciąg formatu niestandardowego dla niezmiennej kultury to „HH:mm”.
Ciąg wynikowy ma wpływ na informacje o formatowaniu określonego obiektu DateTimeFormatInfo. W poniższej tabeli wymieniono właściwości obiektu DateTimeFormatInfo, które mogą kontrolować formatowanie zwracanego ciągu. Specyfikator formatu niestandardowego zwracany przez właściwość DateTimeFormatInfo.ShortTimePattern niektórych kultur może nie korzystać ze wszystkich właściwości.
Nieruchomość | Opis |
---|---|
ShortTimePattern | Definiuje format składnika czasu ciągu wynikowego. |
TimeSeparator | Definiuje ciąg, który oddziela składniki godziny, minuty i sekundy czasu. |
AMDesignator | Definiuje ciąg, który wskazuje godziny od północy do południa w 12-godzinnym zegarze. |
PMDesignator | Definiuje ciąg, który wskazuje godziny od południa do północy w 12-godzinnym zegarze. |
W poniższym przykładzie użyto specyfikatora formatu „t”, aby wyświetlić wartość daty i godziny.
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("t",
CultureInfo.CreateSpecificCulture("en-us")));
// Displays 6:30 AM
Console.WriteLine(date1.ToString("t",
CultureInfo.CreateSpecificCulture("es-ES")));
// Displays 6:30
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("t", _
CultureInfo.CreateSpecificCulture("en-us")))
' Displays 6:30 AM
Console.WriteLine(date1.ToString("t", _
CultureInfo.CreateSpecificCulture("es-ES")))
' Displays 6:30
Specyfikator formatu długiego ("T")
Specyfikator formatu standardowego "T" reprezentuje niestandardowy ciąg formatu daty i godziny zdefiniowany przez właściwość DateTimeFormatInfo.LongTimePattern określonej kultury. Na przykład ciąg formatu niestandardowego dla niezmiennej kultury to „HH:mm:ss”.
W poniższej tabeli wymieniono właściwości obiektu DateTimeFormatInfo, które mogą kontrolować formatowanie zwracanego ciągu. Specyfikator formatu niestandardowego zwracany przez właściwość DateTimeFormatInfo.LongTimePattern niektórych kultur może nie korzystać ze wszystkich właściwości.
Nieruchomość | Opis |
---|---|
LongTimePattern | Definiuje format składnika czasu ciągu wynikowego. |
TimeSeparator | Definiuje ciąg, który oddziela składniki godziny, minuty i sekundy czasu. |
AMDesignator | Definiuje ciąg, który wskazuje godziny od północy do południa w 12-godzinnym zegarze. |
PMDesignator | Definiuje ciąg, który wskazuje godziny od południa do północy w 12-godzinnym zegarze. |
W poniższym przykładzie użyto specyfikatora formatu „T”, aby wyświetlić wartość daty i godziny.
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("T",
CultureInfo.CreateSpecificCulture("en-us")));
// Displays 6:30:00 AM
Console.WriteLine(date1.ToString("T",
CultureInfo.CreateSpecificCulture("es-ES")));
// Displays 6:30:00
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("T", _
CultureInfo.CreateSpecificCulture("en-us")))
' Displays 6:30:00 AM
Console.WriteLine(date1.ToString("T", _
CultureInfo.CreateSpecificCulture("es-ES")))
' Displays 6:30:00
Częściowe formaty dat
Ta grupa zawiera następujące formaty:
Specyfikator formatu miesiąca ("M", "m")
Specyfikator formatu standardowego "M" lub "m" reprezentuje niestandardowy ciąg formatu daty i godziny zdefiniowany przez bieżącą właściwość DateTimeFormatInfo.MonthDayPattern. Na przykład ciąg formatu niestandardowego dla niezmiennej kultury to „MMMM dd”.
W poniższej tabeli wymieniono właściwości obiektu DateTimeFormatInfo, które kontrolują formatowanie zwracanego ciągu.
Nieruchomość | Opis |
---|---|
MonthDayPattern | Definiuje ogólny format ciągu wynikowego. |
MonthNames | Definiuje zlokalizowane nazwy miesięcy, które mogą być wyświetlane w ciągu wynikowym. |
W poniższym przykładzie użyto specyfikatora formatu „m”, aby wyświetlić wartość daty i godziny.
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("m",
CultureInfo.CreateSpecificCulture("en-us")));
// Displays April 10
Console.WriteLine(date1.ToString("m",
CultureInfo.CreateSpecificCulture("ms-MY")));
// Displays 10 April
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("m", _
CultureInfo.CreateSpecificCulture("en-us")))
' Displays April 10
Console.WriteLine(date1.ToString("m", _
CultureInfo.CreateSpecificCulture("ms-MY")))
' Displays 10 April
Specyfikator formatu miesiąca roku ("Y", "y")
Specyfikator formatu standardowego "Y" lub "y" reprezentuje niestandardowy ciąg formatu daty i godziny zdefiniowany przez właściwość DateTimeFormatInfo.YearMonthPattern określonej kultury. Na przykład ciąg formatu niestandardowego dla niezmiennej kultury to „yyyy MMMM”.
W poniższej tabeli wymieniono właściwości obiektu DateTimeFormatInfo, które kontrolują formatowanie zwracanego ciągu.
Nieruchomość | Opis |
---|---|
YearMonthPattern | Definiuje ogólny format ciągu wynikowego. |
MonthNames | Definiuje zlokalizowane nazwy miesięcy, które mogą być wyświetlane w ciągu wynikowym. |
W poniższym przykładzie użyto specyfikatora formatu „y”, aby wyświetlić wartość daty i godziny.
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("Y",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays April, 2008
Console.WriteLine(date1.ToString("y",
CultureInfo.CreateSpecificCulture("af-ZA")));
// Displays April 2008
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("Y", CultureInfo.CreateSpecificCulture("en-US")))
' Displays April, 2008
Console.WriteLine(date1.ToString("y", CultureInfo.CreateSpecificCulture("af-ZA")))
' Displays April 2008
Ustawienia panelu sterowania
W systemie Windows ustawienia w Opcje regionalne i językowe elementu w Panelu sterowania wpływają na ciąg wynikowy wygenerowany przez operację formatowania. Te ustawienia służą do inicjowania obiektu DateTimeFormatInfo skojarzonego z bieżącą kulturą, który udostępnia wartości używane do zarządzania formatowaniem. Komputery korzystające z różnych ustawień generują różne ciągi wyników.
Ponadto jeśli używasz konstruktora CultureInfo(String) do utworzenia wystąpienia nowego obiektu CultureInfo, który reprezentuje tę samą kulturę co bieżąca kultura systemu, wszelkie dostosowania ustanowione przez Opcje regionalne i językowe elementu w Panelu sterowania zostaną zastosowane do nowego obiektu CultureInfo. Konstruktora CultureInfo(String, Boolean) można użyć do utworzenia obiektu CultureInfo, który nie odzwierciedla dostosowań systemu.
Właściwości DateTimeFormatInfo
Formatowanie ma wpływ na właściwości bieżącego obiektu DateTimeFormatInfo, który jest dostarczany niejawnie przez bieżącą kulturę lub jawnie przez parametr IFormatProvider metody, która wywołuje formatowanie. W przypadku parametru IFormatProvider aplikacja powinna określić obiekt CultureInfo, który reprezentuje kulturę lub obiekt DateTimeFormatInfo, który reprezentuje konwencje formatowania daty i godziny określonej kultury. Wiele standardowych specyfikatorów formatu daty i godziny to aliasy dla wzorców formatowania zdefiniowanych przez właściwości bieżącego obiektu DateTimeFormatInfo. Aplikacja może zmienić wynik wygenerowany przez niektóre standardowe specyfikatory formatu daty i godziny, zmieniając odpowiednie wzorce formatu daty i godziny odpowiadającej właściwości DateTimeFormatInfo.
Zobacz też
- System.DateTime
- System.DateTimeOffset
- Typy formatowania
- Niestandardowe ciągi formatu data i godzina
- przykład : narzędzie formatowania winforms platformy .NET Core (C#)
- przykład : .NET Core WinForms Formatting Utility (Visual Basic)