TimeZoneInfo.ConvertTimeBySystemTimeZoneId Metoda

Definicja

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

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.

sourceTimeZoneId to null.

-lub-

destinationTimeZoneId to null.

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

Zobacz też

Dotyczy