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