TimeZoneInfo.ConvertTimeBySystemTimeZoneId Metod

Definition

Konverterar en tid till tiden i en annan tidszon baserat på en tidszonsidentifierare.

Överlagringar

Name Description
ConvertTimeBySystemTimeZoneId(DateTime, String)

Konverterar en tid till tiden i en annan tidszon baserat på tidszonens identifierare.

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Konverterar en tid till tiden i en annan tidszon baserat på tidszonens identifierare.

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Konverterar en tid från en tidszon till en annan baserat på tidszonsidentifierare.

ConvertTimeBySystemTimeZoneId(DateTime, String)

Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs

Konverterar en tid till tiden i en annan tidszon baserat på tidszonens identifierare.

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

Parametrar

dateTime
DateTime

Datum och tid som ska konverteras.

destinationTimeZoneId
String

Identifieraren för måltidszonen.

Returer

Datum och tid i måltidszonen.

Undantag

destinationTimeZoneId är null.

Tidszonsidentifieraren hittades, men registerdata är skadade.

Processen har inte de behörigheter som krävs för att läsa från registernyckeln som innehåller tidszonsinformationen.

Identifieraren destinationTimeZoneId hittades inte i det lokala systemet.

Kommentarer

När du utför konverteringen ConvertTimeBySystemTimeZoneId tillämpar metoden eventuella justeringsregler som gäller i tidszonen destinationTimeZoneId .

Den här överlagringen ConvertTime(DateTime, TimeZoneInfo) är i stort sett identisk med att anropa metoden, förutom att du kan ange måltidszonen efter dess identifierare i stället för en objektreferens. Den här metoden är mest användbar när du måste konvertera en tid utan att hämta tidszonsobjektet som motsvarar det och du inte behöver veta om den konverterade tiden är standard eller sommartid.

Metoden ConvertTimeBySystemTimeZoneId(DateTime, String) avgör källtidszonen från värdet för dateTime parameterns Kind egenskap, vilket visas i följande tabell.

Typegenskapsvärde Källtidszon Metodbeteende
DateTimeKind.Local Local Konverterar den lokala tiden till tiden i destinationTimeZone.
DateTimeKind.Utc Utc Konverterar UTC (Coordinated Universal Time) till tiden i destinationTimeZone.
DateTimeKind.Unspecified Antas vara Local. Konverterar den lokala tiden till tiden i destinationTimeZone.

Egenskapen Kind för det returnerade DateTime värdet anges enligt följande tabell.

Tillstånd Returnerat egenskapsvärde för Typ
destinationTimeZone är TimeZoneInfo.Utc.Id. DateTimeKind.Utc
Alla andra destinationTimeZone värden. DateTimeKind.Unspecified

Om värdet för parametern dateTime är en tvetydig lokal tid tolkas det som en standardtid. Om parametern dateTime är en ogiltig lokal tid genererar den här metoden en ArgumentException.

Om konverteringen av dateTime resulterar i ett datum- och tidsvärde som är tidigare än DateTime.MinValue eller senare än DateTime.MaxValuereturnerar DateTime.MinValue den här metoden respektive DateTime.MaxValue.

Den här metoden hämtar information om tidszonen vars identifierare anges av parametern destinationTimeZoneId från registret i Windows system och från ICU Library på Linux och macOS. Det går inte att hämta ett tidszonsobjekt som skapas med hjälp av CreateCustomTimeZone metoden . Parametern destinationTimeZoneId måste motsvara exakt tidszonens identifierare i längd, men inte om en lyckad matchning ska inträffa. Jämförelsen av destinationTimeZoneId med tidszonsidentifierare är skiftlägeskänslig.

Se även

Gäller för

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs

Konverterar en tid till tiden i en annan tidszon baserat på tidszonens identifierare.

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

Parametrar

dateTimeOffset
DateTimeOffset

Datum och tid som ska konverteras.

destinationTimeZoneId
String

Identifieraren för måltidszonen.

Returer

Datum och tid i måltidszonen.

Undantag

destinationTimeZoneId är null.

Tidszonsidentifieraren hittades men registerdata är skadade.

Processen har inte de behörigheter som krävs för att läsa från registernyckeln som innehåller tidszonsinformationen.

Identifieraren destinationTimeZoneId hittades inte i det lokala systemet.

Kommentarer

När du utför konverteringen ConvertTimeBySystemTimeZoneId tillämpar metoden eventuella justeringsregler som gäller i tidszonen destinationTimeZoneId .

Den här överlagringen ConvertTime(DateTimeOffset, TimeZoneInfo) är identisk med att anropa metoden, förutom att du kan ange måltidszonen efter dess identifierare i stället för en objektreferens. Den här metoden är mest användbar när du måste konvertera en tid utan att hämta tidszonsobjektet som motsvarar det och du inte behöver veta om den konverterade tiden är standard eller sommartid.

Eftersom parametern dateTimeOffset representerar ett datum och en tid tillsammans med den tidens förskjutning från Coordinated Universal Time (UTC) kan den inte representera antingen en tvetydig tid eller en ogiltig tid.

Den här metoden hämtar tidszonen vars identifierare anges av parametern destinationTimeZoneId från registret i Windows system och från ICU Library på Linux och macOS. Det går inte att hämta ett tidszonsobjekt som skapas med hjälp av CreateCustomTimeZone metoden . Parametern destinationTimeZoneId måste motsvara exakt tidszonens identifierare i längd, men inte om en lyckad matchning ska inträffa. Jämförelsen av destinationTimeZoneId med tidszonsidentifierare är skiftlägeskänslig.

När du konverterar dateTimeOffset värdet till tiden i måltidszonen tar metoden hänsyn till eventuella justeringsregler som gäller i måltidszonen.

Om konverteringen av dateTimeOffset resulterar i ett datum- och tidsvärde som är tidigare än DateTimeOffset.MinValue eller senare än DateTimeOffset.MaxValuereturnerar DateTimeOffset.MinValue den här metoden respektive DateTimeOffset.MaxValue.

Se även

Gäller för

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs
Källa:
TimeZoneInfo.cs

Konverterar en tid från en tidszon till en annan baserat på tidszonsidentifierare.

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

Parametrar

dateTime
DateTime

Datum och tid som ska konverteras.

sourceTimeZoneId
String

Identifieraren för källtidszonen.

destinationTimeZoneId
String

Identifieraren för måltidszonen.

Returer

Datum och tid i måltidszonen som motsvarar parametern dateTime i källtidszonen.

Undantag

Egenskapen Kind för parametern dateTime motsvarar inte källtidszonen.

-eller-

dateTime är en ogiltig tid i källtidszonen.

sourceTimeZoneId är null.

-eller-

destinationTimeZoneId är null.

Tidszonsidentifierarna hittades, men registerdata är skadade.

Användaren har inte de behörigheter som krävs för att läsa från registernycklarna som innehåller tidszonsdata.

Identifieraren sourceTimeZoneId hittades inte i det lokala systemet.

-eller-

Identifieraren destinationTimeZoneId hittades inte i det lokala systemet.

Exempel

I följande exempel används TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) metoden för att visa den tid som motsvarar den lokala systemtiden i åtta städer i världen.

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"))

Kommentarer

När du utför konverteringen ConvertTimeBySystemTimeZoneId tillämpar metoden eventuella justeringsregler som gäller i tidszonen destinationTimeZoneId .

Även om den liknar TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) metoden kan du använda TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) för att ange käll- och måltidszonerna med hjälp av deras identifierare i stället för deras TimeZoneInfo objekt. Den här metoden är mest användbar när du måste konvertera en tid utan att hämta tidszonsobjektet som motsvarar det och du inte behöver veta om den konverterade tiden är standard eller sommartid.

Den här metoden hämtar de tidszoner vars identifierare är parametrarna sourceTimeZoneId och destinationTimeZoneId från registret i Windows system och från ICU-biblioteket på Linux och macOS. Det går inte att hämta tidszonsobjekt som skapas med hjälp av CreateCustomTimeZone metoden .

Värdet för egenskapen för Kind parametern dateTime måste motsvara parametern sourceTimeZoneId , som följande tabell visar.

DateTime.Kind-värde sourceTimeZone-värde Metodbeteende
DateTimeKind.Utc Är lika med TimeZoneInfo.Utc.Id. Konverterar dateTime till måltidszonens tid.
DateTimeKind.Utc Är inte lika med TimeZoneInfo.Utc.Id. Kastar en ArgumentException.
DateTimeKind.Local Är lika med TimeZoneInfo.Local.Id. Konverterar dateTime till måltidszonens tid.
DateTimeKind.Local Är inte lika med TimeZoneInfo.Local.Id. Kastar en ArgumentException.
DateTimeKind.Unspecified Någon. Konverterar dateTime till måltidszonens tid.

Eftersom den förlitar sig på anrop till FindSystemTimeZoneById metoden ConvertTimeBySystemTimeZoneId utför metoden en skiftlägeskänslig sökning för att hitta de tidszoner som motsvarar sourceTimeZoneId och destinationTimeZoneId.

Om värdet för parametern dateTime är en tvetydig tid i källtidszonen tolkas det som en standardtid. Om parametern dateTime är en ogiltig tid i källtidszonen genererar den här metoden en ArgumentException.

Egenskapen Kind för det returnerade DateTime värdet anges till DateTimeKind.Unspecified såvida inte måltidszonen är Coordinated Universal Time (UTC), i vilket fall den är inställd på DateTimeKind.Utc.

Se även

Gäller för