TimeZoneInfo.ConvertTimeBySystemTimeZoneId Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Konwertuje czas na czas w innej strefie czasowej na podstawie identyfikatora strefy czasowej.
Przeciążenia
ConvertTimeBySystemTimeZoneId(DateTime, String) |
Konwertuje czas na czas w innej strefie czasowej na podstawie identyfikatora strefy czasowej. |
ConvertTimeBySystemTimeZoneId(DateTimeOffset, String) |
Konwertuje czas na czas w innej strefie czasowej na podstawie identyfikatora strefy czasowej. |
ConvertTimeBySystemTimeZoneId(DateTime, String, String) |
Konwertuje czas z jednej strefy czasowej na inną na podstawie identyfikatorów stref czasowych. |
ConvertTimeBySystemTimeZoneId(DateTime, String)
- Źródło:
- TimeZoneInfo.cs
- Źródło:
- TimeZoneInfo.cs
- Źródło:
- TimeZoneInfo.cs
Konwertuje czas na czas w innej strefie czasowej na podstawie identyfikatora strefy czasowej.
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
Data i godzina konwersji.
- destinationTimeZoneId
- String
Identyfikator docelowej strefy czasowej.
Zwraca
Data i godzina w docelowej strefie czasowej.
Wyjątki
destinationTimeZoneId
to null
.
Znaleziono identyfikator strefy czasowej, ale dane rejestru są uszkodzone.
Proces nie ma uprawnień wymaganych do odczytu z klucza rejestru zawierającego informacje o strefie czasowej.
Nie można odnaleźć identyfikatora destinationTimeZoneId
w systemie lokalnym.
Uwagi
Podczas przeprowadzania konwersji ConvertTimeBySystemTimeZoneId metoda stosuje wszelkie reguły korekty obowiązujące w strefie czasowej destinationTimeZoneId
.
To przeciążenie jest w dużej mierze identyczne z wywoływaniem ConvertTime(DateTime, TimeZoneInfo) metody, z tą różnicą, że pozwala określić docelową strefę czasową według jego identyfikatora, a nie przez odwołanie do obiektu. Ta metoda jest najbardziej przydatna, gdy należy przekonwertować czas bez pobierania obiektu strefy czasowej, który mu odpowiada, i nie musisz wiedzieć, czy przekonwertowany czas jest standardowy, czy czas letni.
Metoda ConvertTimeBySystemTimeZoneId(DateTime, String) określa źródłową strefę czasową z wartości dateTime
właściwości parametru Kind , jak pokazano w poniższej tabeli.
Wartość właściwości kind | Źródłowa strefa czasowa | Zachowanie metody |
---|---|---|
DateTimeKind.Local | Local | Konwertuje czas lokalny na czas w destinationTimeZone pliku . |
DateTimeKind.Utc | Utc | Konwertuje uniwersalny czas koordynowany (UTC) na czas w destinationTimeZone . |
DateTimeKind.Unspecified | Przyjmuje się, że ma wartość Local. | Konwertuje czas lokalny na czas w destinationTimeZone pliku . |
Właściwość Kind zwróconej DateTime wartości jest ustawiona, jak pokazano w poniższej tabeli.
Warunek | Zwrócona wartość właściwości Kind |
---|---|
Wartość destinationTimeZone to TimeZoneInfo.Utc.Id . |
DateTimeKind.Utc |
Dowolna inna destinationTimeZone wartość. |
DateTimeKind.Unspecified |
Jeśli wartość parametru dateTime
jest niejednoznacznym czasem lokalnym, jest interpretowana jako czas standardowy.
dateTime
Jeśli parametr jest nieprawidłowy czas lokalny, ta metoda zgłasza błąd ArgumentException.
Jeśli konwersja dateTime
wyników ma wartość daty i godziny, która jest wcześniejsza niż lub nowsza niż DateTime.MaxValueDateTime.MinValue , ta metoda zwraca DateTime.MinValue wartość lub DateTime.MaxValue, odpowiednio.
Ta metoda pobiera informacje o strefie czasowej, której identyfikator jest określony przez destinationTimeZoneId
parametr z rejestru w systemach Windows i z biblioteki ICU w systemach Linux i macOS. Nie może pobrać obiektu strefy czasowej utworzonego CreateCustomTimeZone przy użyciu metody . Parametr destinationTimeZoneId
musi odpowiadać dokładnie identyfikatorowi strefy czasowej długości, ale nie w przypadku pomyślnego dopasowania; oznacza to, że porównanie destinationTimeZoneId
identyfikatorów strefy czasowej jest bez uwzględniania wielkości liter.
Zobacz też
Dotyczy
ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)
- Źródło:
- TimeZoneInfo.cs
- Źródło:
- TimeZoneInfo.cs
- Źródło:
- TimeZoneInfo.cs
Konwertuje czas na czas w innej strefie czasowej na podstawie identyfikatora strefy czasowej.
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
Data i godzina konwersji.
- destinationTimeZoneId
- String
Identyfikator docelowej strefy czasowej.
Zwraca
Data i godzina w docelowej strefie czasowej.
Wyjątki
destinationTimeZoneId
to null
.
Znaleziono identyfikator strefy czasowej, ale dane rejestru są uszkodzone.
Proces nie ma uprawnień wymaganych do odczytu z klucza rejestru zawierającego informacje o strefie czasowej.
Nie można odnaleźć identyfikatora destinationTimeZoneId
w systemie lokalnym.
Uwagi
Podczas przeprowadzania konwersji ConvertTimeBySystemTimeZoneId metoda stosuje wszelkie reguły korekty obowiązujące w strefie czasowej destinationTimeZoneId
.
To przeciążenie jest identyczne do wywoływania ConvertTime(DateTimeOffset, TimeZoneInfo) metody, z tą różnicą, że pozwala określić docelową strefę czasową według jej identyfikatora, a nie przez odwołanie do obiektu. Ta metoda jest najbardziej przydatna, gdy należy przekonwertować czas bez pobierania obiektu strefy czasowej, który mu odpowiada, i nie musisz wiedzieć, czy przekonwertowany czas jest standardowy, czy czas letni.
dateTimeOffset
Ponieważ parametr reprezentuje datę i godzinę wraz z przesunięciem tego czasu z uniwersalnego czasu koordynowanego (UTC), nie może reprezentować ani niejednoznacznego czasu, ani nieprawidłowego czasu.
Ta metoda pobiera strefę czasową, której identyfikator jest określony przez destinationTimeZoneId
parametr z rejestru w systemach Windows i z biblioteki ICU w systemach Linux i macOS. Nie może pobrać obiektu strefy czasowej utworzonego CreateCustomTimeZone przy użyciu metody . Parametr destinationTimeZoneId
musi odpowiadać dokładnie identyfikatorowi strefy czasowej długości, ale nie w przypadku pomyślnego dopasowania; oznacza to, że porównanie destinationTimeZoneId
identyfikatorów strefy czasowej jest bez uwzględniania wielkości liter.
W konwertowaniu dateTimeOffset
wartości na czas w docelowej strefie czasowej metoda uwzględnia wszelkie reguły korekty obowiązujące w docelowej strefie czasowej.
Jeśli konwersja dateTimeOffset
wyników ma wartość daty i godziny, która jest wcześniejsza niż lub nowsza niż DateTimeOffset.MaxValueDateTimeOffset.MinValue , ta metoda zwraca DateTimeOffset.MinValue wartość lub DateTimeOffset.MaxValue, odpowiednio.
Zobacz też
Dotyczy
ConvertTimeBySystemTimeZoneId(DateTime, String, String)
- Źródło:
- TimeZoneInfo.cs
- Źródło:
- TimeZoneInfo.cs
- Źródło:
- TimeZoneInfo.cs
Konwertuje czas z jednej strefy czasowej na inną na podstawie identyfikatorów stref czasowych.
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
Data i godzina konwersji.
- sourceTimeZoneId
- String
Identyfikator źródłowej strefy czasowej.
- destinationTimeZoneId
- String
Identyfikator docelowej strefy czasowej.
Zwraca
Data i godzina w docelowej strefie czasowej, która odpowiada parametrowi dateTime
w źródłowej strefie czasowej.
Wyjątki
Właściwość Kind parametru dateTime
nie odpowiada źródłowej strefie czasowej.
-lub-
dateTime
jest nieprawidłowym czasem w źródłowej strefie czasowej.
Znaleziono identyfikatory strefy czasowej, ale dane rejestru są uszkodzone.
Użytkownik nie ma uprawnień wymaganych do odczytu z kluczy rejestru, które przechowują dane strefy czasowej.
Nie można odnaleźć identyfikatora sourceTimeZoneId
w systemie lokalnym.
-lub-
Nie można odnaleźć identyfikatora destinationTimeZoneId
w systemie lokalnym.
Przykłady
W poniższym przykładzie użyto TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) metody , aby wyświetlić czas odpowiadający lokalnemu czasowi systemowemu w ośmiu miastach świata.
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"))
Uwagi
Podczas przeprowadzania konwersji ConvertTimeBySystemTimeZoneId metoda stosuje wszelkie reguły korekty obowiązujące w strefie czasowej destinationTimeZoneId
.
Chociaż jest ona podobna do TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) metody , można użyć TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) metody , aby określić źródłowe i docelowe strefy czasowe przy użyciu ich identyfikatorów zamiast obiektów TimeZoneInfo . Ta metoda jest najbardziej przydatna, gdy należy przekonwertować czas bez pobierania obiektu strefy czasowej, który mu odpowiada, i nie musisz wiedzieć, czy przekonwertowany czas jest standardowy, czy czas letni.
Ta metoda pobiera strefy czasowe, których identyfikatory są sourceTimeZoneId
parametrami i destinationTimeZoneId
z rejestru w systemach Windows oraz z biblioteki ICU w systemach Linux i macOS. Nie może pobrać obiektów strefy czasowej utworzonych przy użyciu CreateCustomTimeZone metody .
Wartość Kind właściwości parametru dateTime
musi odpowiadać parametrowi sourceTimeZoneId
, jak pokazano w poniższej tabeli.
Wartość DateTime.Kind | sourceTimeZone wartość | Zachowanie metody |
---|---|---|
DateTimeKind.Utc | Równa się TimeZoneInfo.Utc.Id . |
Konwertuje dateTime czas docelowej strefy czasowej. |
DateTimeKind.Utc | Nie równa TimeZoneInfo.Utc.Id się . |
Zgłasza element ArgumentException. |
DateTimeKind.Local | Równa się TimeZoneInfo.Local.Id . |
Konwertuje dateTime czas docelowej strefy czasowej. |
DateTimeKind.Local | Nie równa TimeZoneInfo.Local.Id się . |
Zgłasza element ArgumentException. |
DateTimeKind.Unspecified | Wszelki. | Konwertuje dateTime czas docelowej strefy czasowej. |
Ponieważ opiera się na wywołaniach FindSystemTimeZoneById metody, ConvertTimeBySystemTimeZoneId metoda wykonuje wyszukiwanie bez uwzględniania wielkości liter w celu zlokalizowania stref czasowych odpowiadających metodom sourceTimeZoneId
i destinationTimeZoneId
.
Jeśli wartość parametru dateTime
jest niejednoznacznym czasem w źródłowej strefie czasowej, jest interpretowana jako czas standardowy.
dateTime
Jeśli parametr jest nieprawidłowy czas w źródłowej strefie czasowej, ta metoda zgłasza błąd ArgumentException.
Właściwość Kind zwracanej DateTime wartości jest ustawiona na DateTimeKind.Unspecified wartość , chyba że docelowa strefa czasowa to uniwersalny czas koordynowany (UTC), w którym przypadku jest ustawiona wartość DateTimeKind.Utc.