TimeZoneInfo.ConvertTimeBySystemTimeZoneId Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 dateTime
Kind , 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 destinationTimeZone souboru . |
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 destinationTimeZone souboru . |
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.
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 .