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í
| Name | Description |
|---|---|
| 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 na jiné na základě identifikátorů časového pásma. |
ConvertTimeBySystemTimeZoneId(DateTime, String)
- Zdroj:
- TimeZoneInfo.cs
- Zdroj:
- TimeZoneInfo.cs
- 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í potřebná 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 úpravy platná v časovém pásmu destinationTimeZoneId .
Toto přetížení je z velké části identické s voláním ConvertTime(DateTime, TimeZoneInfo) metody, s tím rozdílem, že umožňuje určit cílové časové pásmo podle jeho identifikátoru namísto odkazu na objekt. Tato metoda je nejužitečnější, když je nutné převést čas bez načtení objektu časového pásma, který odpovídá tomuto objektu, a nemusíte vědět, zda převedený čas je standardní nebo letní čas.
Metoda ConvertTimeBySystemTimeZoneId(DateTime, String) určuje zdrojové časové pásmo z hodnoty vlastnosti parametru dateTimeKind , jak ukazuje následující tabulka.
| Hodnota vlastnosti Kind | Časové pásmo zdroje | Chování metody |
|---|---|---|
| DateTimeKind.Local | Local | Převede místní čas na čas v .destinationTimeZone |
| 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 |
Vlastnost Kind vrácené DateTime hodnoty je nastavena, jak je znázorněno v následující tabulce.
| Podmínka | Vrácená hodnota vlastnosti Kind |
|---|---|
To destinationTimeZone je TimeZoneInfo.Utc.Id. |
DateTimeKind.Utc |
Jakákoli jiná destinationTimeZone hodnota. |
DateTimeKind.Unspecified |
Pokud je hodnota dateTime parametru nejednoznačným místním časem, interpretuje se jako standardní čas.
dateTime Pokud je parametr neplatný místní čas, tato metoda vyvolá .ArgumentException
Pokud je výsledkem převodu dateTime hodnoty data a času, která je dřívější nebo pozdější než DateTime.MaxValueDateTime.MinValue , vrátí tato metoda DateTime.MinValue nebo DateTime.MaxValue, v uvedeném pořadí.
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 identifikátoru časového pásma, ale ne v případě úspěšné shody. To znamená, že porovnání destinationTimeZoneId s identifikátory časových pásem nerozlišuje malá a velká písmena.
Viz také
Platí pro
ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)
- Zdroj:
- TimeZoneInfo.cs
- Zdroj:
- TimeZoneInfo.cs
- 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í potřebná 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 úpravy platná v časovém pásmu destinationTimeZoneId .
Toto přetížení je identické s voláním 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ž je nutné převést čas bez načtení objektu časového pásma, který odpovídá tomuto objektu, a nemusíte vědět, zda převedený čas je standardní nebo letní čas.
dateTimeOffset Vzhledem k tomu, ž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ý čas nebo 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 identifikátoru časového pásma, ale ne v případě úspěšné shody. To znamená, že porovnání destinationTimeZoneId s identifikátory časových pásem 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 platná v cílovém časovém pásmu.
Pokud je výsledkem převodu dateTimeOffset hodnoty data a času, která je dřívější nebo pozdější než DateTimeOffset.MaxValueDateTimeOffset.MinValue , vrátí tato metoda DateTimeOffset.MinValue nebo DateTimeOffset.MaxValue, v uvedeném pořadí.
Viz také
Platí pro
ConvertTimeBySystemTimeZoneId(DateTime, String, String)
- Zdroj:
- TimeZoneInfo.cs
- Zdroj:
- TimeZoneInfo.cs
- Zdroj:
- TimeZoneInfo.cs
- Zdroj:
- TimeZoneInfo.cs
- Zdroj:
- TimeZoneInfo.cs
Převede čas z jednoho časového pásma na jiné 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 ve zdrojovém dateTime časovém pásmu.
Výjimky
Kind Vlastnost 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í potřebná 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 úpravy platná v časovém pásmu destinationTimeZoneId .
I když se TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) podobá 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ž je nutné převést čas bez načtení objektu časového pásma, který odpovídá tomuto objektu, a nemusíte vědět, zda převedený čas je standardní nebo letní čas.
Tato metoda načte časová pásma, jejichž identifikátory jsou sourceTimeZoneId identifikátory a destinationTimeZoneId parametry z registru v systémech Windows a z knihovny ICU v Linuxu a macOS. Nelze načíst objekty časového pásma vytvořené 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 se na čas cílového časového pásma. |
| DateTimeKind.Utc | Nerovná TimeZoneInfo.Utc.Idse . |
Vyhodí .ArgumentException |
| DateTimeKind.Local | Rovná se TimeZoneInfo.Local.Id. |
dateTime Převede se na čas cílového časového pásma. |
| DateTimeKind.Local | Nerovná TimeZoneInfo.Local.Idse . |
Vyhodí .ArgumentException |
| DateTimeKind.Unspecified | Cokoliv. |
dateTime Převede se na čas cílového časového pásma. |
Vzhledem k tomu, že spoléhá na volání FindSystemTimeZoneById metody, ConvertTimeBySystemTimeZoneId metoda provádí vyhledávání bez rozlišování velkých a malých písmen, aby vyhledala časová pásma, která odpovídají sourceTimeZoneId a destinationTimeZoneId.
Pokud je hodnota parametru dateTime nejednoznačným časem ve zdrojovém časovém pásmu, interpretuje se jako standardní čas.
dateTime Pokud je parametr neplatným časem ve zdrojovém časovém pásmu, tato metoda vyvolá ArgumentExceptionvýjimku .
Vlastnost Kind vrácené DateTime hodnoty je nastavena, DateTimeKind.Unspecified pokud cílové časové pásmo není koordinovaný univerzální čas (UTC), v takovém případě je nastavena na DateTimeKind.Utc.