Sdílet prostřednictvím


TimeZoneInfo.ConvertTimeBySystemTimeZoneId Metoda

Definice

Převede čas na čas v jiném časovém pásmu na základě identifikátoru časového pásma.

Přetížení

ConvertTimeBySystemTimeZoneId(DateTime, String)

Převede čas na čas v jiném časovém pásmu na základě identifikátoru časového pásma.

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Převede čas na čas v jiném časovém pásmu na základě identifikátoru časového pásma.

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Převede čas z jednoho časového pásma do jiného na základě identifikátorů časového pásma.

ConvertTimeBySystemTimeZoneId(DateTime, String)

Zdroj:
TimeZoneInfo.cs
Zdroj:
TimeZoneInfo.cs
Zdroj:
TimeZoneInfo.cs

Převede čas na čas v jiném časovém pásmu na základě identifikátoru časového pásma.

public:
 static DateTime ConvertTimeBySystemTimeZoneId(DateTime dateTime, System::String ^ destinationTimeZoneId);
public static DateTime ConvertTimeBySystemTimeZoneId (DateTime dateTime, string destinationTimeZoneId);
static member ConvertTimeBySystemTimeZoneId : DateTime * string -> DateTime
Public Shared Function ConvertTimeBySystemTimeZoneId (dateTime As DateTime, destinationTimeZoneId As String) As DateTime

Parametry

dateTime
DateTime

Datum a čas, který chcete převést.

destinationTimeZoneId
String

Identifikátor cílového časového pásma.

Návraty

Datum a čas v cílovém časovém pásmu.

Výjimky

destinationTimeZoneId je null.

Byl nalezen identifikátor časového pásma, ale data registru jsou poškozena.

Proces nemá oprávnění požadovaná ke čtení z klíče registru, který obsahuje informace o časovém pásmu.

Identifikátor destinationTimeZoneId nebyl v místním systému nalezen.

Poznámky

Při provádění převodu ConvertTimeBySystemTimeZoneId metoda použije všechna pravidla úprav platná v časovém pásmu destinationTimeZoneId .

Toto přetížení je do značné míry identické s voláním ConvertTime(DateTime, TimeZoneInfo) metody, s výjimkou toho, že umožňuje určit cílové časové pásmo podle jeho identifikátoru, nikoli odkazem na objekt. Tato metoda je nejužitečnější, když musíte převést čas bez načtení objektu časového pásma, který mu odpovídá, a nepotřebujete vědět, zda převedený čas je standardní nebo letní čas.

Metoda ConvertTimeBySystemTimeZoneId(DateTime, String) určuje časové pásmo zdroje z hodnoty vlastnosti parametru dateTimeKind , jak ukazuje následující tabulka.

Hodnota vlastnosti Druh Zdrojové časové pásmo Chování metody
DateTimeKind.Local Local Převede místní čas na čas v destinationTimeZonesouboru .
DateTimeKind.Utc Utc Převede koordinovaný univerzální čas (UTC) na čas v destinationTimeZone.
DateTimeKind.Unspecified Předpokládá se, že je Local. Převede místní čas na čas v destinationTimeZonesouboru .

Vlastnost Kind vrácené DateTime hodnoty je nastavená tak, jak je znázorněno v následující tabulce.

Podmínka Vrácená hodnota vlastnosti Kind
Hodnota destinationTimeZone je TimeZoneInfo.Utc.Id. DateTimeKind.Utc
Jakákoli jiná destinationTimeZone hodnota. DateTimeKind.Unspecified

Pokud je hodnota parametru dateTime nejednoznačný místní čas, je interpretována jako standardní čas. dateTime Pokud je parametr neplatný místní čas, tato metoda vyvolá ArgumentException.

Pokud výsledkem převodu dateTime je hodnota data a času, která je starší než DateTime.MinValue nebo novější než DateTime.MaxValue, vrátí DateTime.MinValue tato metoda nebo DateTime.MaxValue.

Tato metoda načte informace o časovém pásmu, jehož identifikátor je určen parametrem destinationTimeZoneId z registru v systémech Windows a z knihovny ICU v Linuxu a macOS. Nelze načíst objekt časového pásma, který je vytvořen pomocí CreateCustomTimeZone metody . Parametr destinationTimeZoneId musí přesně odpovídat délce identifikátoru časového pásma, ale ne v případě, že by došlo k úspěšné shodě. To znamená, že porovnání destinationTimeZoneId s identifikátory časového pásma nerozlišuje malá a velká písmena.

Viz také

Platí pro

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Zdroj:
TimeZoneInfo.cs
Zdroj:
TimeZoneInfo.cs
Zdroj:
TimeZoneInfo.cs

Převede čas na čas v jiném časovém pásmu na základě identifikátoru časového pásma.

public:
 static DateTimeOffset ConvertTimeBySystemTimeZoneId(DateTimeOffset dateTimeOffset, System::String ^ destinationTimeZoneId);
public static DateTimeOffset ConvertTimeBySystemTimeZoneId (DateTimeOffset dateTimeOffset, string destinationTimeZoneId);
static member ConvertTimeBySystemTimeZoneId : DateTimeOffset * string -> DateTimeOffset
Public Shared Function ConvertTimeBySystemTimeZoneId (dateTimeOffset As DateTimeOffset, destinationTimeZoneId As String) As DateTimeOffset

Parametry

dateTimeOffset
DateTimeOffset

Datum a čas, který chcete převést.

destinationTimeZoneId
String

Identifikátor cílového časového pásma.

Návraty

Datum a čas v cílovém časovém pásmu.

Výjimky

destinationTimeZoneId je null.

Byl nalezen identifikátor časového pásma, ale data registru jsou poškozena.

Proces nemá oprávnění požadovaná ke čtení z klíče registru, který obsahuje informace o časovém pásmu.

Identifikátor destinationTimeZoneId nebyl v místním systému nalezen.

Poznámky

Při provádění převodu ConvertTimeBySystemTimeZoneId metoda použije všechna pravidla úprav platná v časovém pásmu destinationTimeZoneId .

Toto přetížení je stejné jako volání ConvertTime(DateTimeOffset, TimeZoneInfo) metody s tím rozdílem, že umožňuje určit cílové časové pásmo podle jeho identifikátoru, nikoli odkazem na objekt. Tato metoda je nejužitečnější, když musíte převést čas bez načtení objektu časového pásma, který mu odpovídá, a nepotřebujete vědět, zda převedený čas je standardní nebo letní čas.

dateTimeOffset Protože parametr představuje datum a čas společně s posunem tohoto času od koordinovaného univerzálního času (UTC), nemůže představovat nejednoznačný ani neplatný čas.

Tato metoda načte časové pásmo, jehož identifikátor je určen parametrem destinationTimeZoneId z registru v systémech Windows a z knihovny ICU v Linuxu a macOS. Nelze načíst objekt časového pásma, který je vytvořen pomocí CreateCustomTimeZone metody . Parametr destinationTimeZoneId musí přesně odpovídat délce identifikátoru časového pásma, ale ne v případě, že by došlo k úspěšné shodě. To znamená, že porovnání destinationTimeZoneId s identifikátory časového pásma nerozlišuje malá a velká písmena.

Při převodu dateTimeOffset hodnoty na čas v cílovém časovém pásmu metoda bere v úvahu všechna pravidla úpravy, která jsou v cílovém časovém pásmu účinná.

Pokud výsledkem převodu dateTimeOffset je hodnota data a času, která je starší než DateTimeOffset.MinValue nebo novější než DateTimeOffset.MaxValue, vrátí DateTimeOffset.MinValue tato metoda nebo DateTimeOffset.MaxValue.

Viz také

Platí pro

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Zdroj:
TimeZoneInfo.cs
Zdroj:
TimeZoneInfo.cs
Zdroj:
TimeZoneInfo.cs

Převede čas z jednoho časového pásma do jiného na základě identifikátorů časového pásma.

public:
 static DateTime ConvertTimeBySystemTimeZoneId(DateTime dateTime, System::String ^ sourceTimeZoneId, System::String ^ destinationTimeZoneId);
public static DateTime ConvertTimeBySystemTimeZoneId (DateTime dateTime, string sourceTimeZoneId, string destinationTimeZoneId);
static member ConvertTimeBySystemTimeZoneId : DateTime * string * string -> DateTime
Public Shared Function ConvertTimeBySystemTimeZoneId (dateTime As DateTime, sourceTimeZoneId As String, destinationTimeZoneId As String) As DateTime

Parametry

dateTime
DateTime

Datum a čas, který chcete převést.

sourceTimeZoneId
String

Identifikátor zdrojového časového pásma.

destinationTimeZoneId
String

Identifikátor cílového časového pásma.

Návraty

Datum a čas v cílovém časovém pásmu, které odpovídá parametru dateTime ve zdrojovém časovém pásmu.

Výjimky

Vlastnost Kind parametru dateTime neodpovídá zdrojovému časovému pásmu.

-nebo-

dateTime je neplatný čas ve zdrojovém časovém pásmu.

sourceTimeZoneId je null.

-nebo-

destinationTimeZoneId je null.

Byly nalezeny identifikátory časového pásma, ale data registru jsou poškozena.

Uživatel nemá oprávnění požadovaná ke čtení z klíčů registru, které obsahují data časového pásma.

Identifikátor sourceTimeZoneId nebyl v místním systému nalezen.

-nebo-

Identifikátor destinationTimeZoneId nebyl v místním systému nalezen.

Příklady

Následující příklad používá metodu TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) k zobrazení času, který odpovídá místnímu systémovému času v osmi městech světa.

DateTime currentTime = DateTime.Now;
Console.WriteLine("Current Times:");
Console.WriteLine();
Console.WriteLine("Los Angeles: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Pacific Standard Time"));
Console.WriteLine("Chicago: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Central Standard Time"));
Console.WriteLine("New York: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Eastern Standard Time"));
Console.WriteLine("London: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "GMT Standard Time"));
Console.WriteLine("Moscow: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Russian Standard Time"));
Console.WriteLine("New Delhi: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "India Standard Time"));
Console.WriteLine("Beijing: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "China Standard Time"));
Console.WriteLine("Tokyo: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Tokyo Standard Time"));
let currentTime = DateTime.Now
printfn "Current Times:\n"
printfn $"""Los Angeles: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Pacific Standard Time")}"""
printfn $"""Chicago: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Central Standard Time")}"""
printfn $"""New York: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Eastern Standard Time")}"""
printfn $"""London: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "GMT Standard Time")}"""
printfn $"""Moscow: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Russian Standard Time")}"""
printfn $"""New Delhi: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "India Standard Time")}"""
printfn $"""Beijing: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "China Standard Time")}"""
printfn $"""Tokyo: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Tokyo Standard Time")}"""
Dim currentTime As Date = Date.Now
Console.WriteLine("Current Times:")
Console.WriteLine()
Console.WriteLine("Los Angeles: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Pacific Standard Time"))
Console.WriteLine("Chicago: {0}", _ 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Central Standard Time"))
Console.WriteLine("New York: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Eastern Standard Time"))
Console.WriteLine("London: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "GMT Standard Time"))
Console.WriteLine("Moscow: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Russian Standard Time"))
Console.WriteLine("New Delhi: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "India Standard Time"))
Console.WriteLine("Beijing: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "China Standard Time"))
Console.WriteLine("Tokyo: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Tokyo Standard Time"))

Poznámky

Při provádění převodu ConvertTimeBySystemTimeZoneId metoda použije všechna pravidla úprav platná v časovém pásmu destinationTimeZoneId .

I když je metoda podobná TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) metodě , můžete použít TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) k určení zdrojového a cílového časového pásma pomocí jejich identifikátorů místo jejich TimeZoneInfo objektů. Tato metoda je nejužitečnější, když musíte převést čas bez načtení objektu časového pásma, který mu odpovídá, a nepotřebujete vědět, zda převedený čas je standardní nebo letní čas.

Tato metoda načte časová pásma, jejichž identifikátory jsou sourceTimeZoneId parametry a destinationTimeZoneId , z registru v systémech Windows a z knihovny ICU v Linuxu a macOS. Nelze načíst objekty časového pásma, které jsou vytvořeny pomocí CreateCustomTimeZone metody .

Hodnota Kind vlastnosti parametru dateTime musí odpovídat parametru sourceTimeZoneId , jak ukazuje následující tabulka.

Hodnota DateTime.Kind hodnota sourceTimeZone Chování metody
DateTimeKind.Utc Rovná se TimeZoneInfo.Utc.Id. dateTime Převede na čas cílového časového pásma.
DateTimeKind.Utc Nerovná se TimeZoneInfo.Utc.Id. Vyvolá .ArgumentException
DateTimeKind.Local Rovná se TimeZoneInfo.Local.Id. dateTime Převede na čas cílového časového pásma.
DateTimeKind.Local Nerovná se TimeZoneInfo.Local.Id. Vyvolá .ArgumentException
DateTimeKind.Unspecified Libovolný. dateTime Převede na čas cílového časového pásma.

Vzhledem k tomu, že spoléhá na volání FindSystemTimeZoneById metody , ConvertTimeBySystemTimeZoneId metoda provádí hledání bez rozlišování velkých a malých písmen k vyhledání časových pásem, která odpovídají sourceTimeZoneId a destinationTimeZoneId.

Pokud je hodnota parametru dateTime nejednoznačný čas ve zdrojovém časovém pásmu, interpretuje se jako standardní čas. dateTime Pokud je parametr neplatný čas ve zdrojovém časovém pásmu, tato metoda vyvolá ArgumentException.

Vlastnost Kind vrácené DateTime hodnoty je nastavená na DateTimeKind.Unspecified , pokud cílové časové pásmo není utc (Coordinated Universal Time). V takovém případě je nastavená na DateTimeKind.Utchodnotu .

Viz také

Platí pro