TimeZoneInfo.FindSystemTimeZoneById(String) TimeZoneInfo.FindSystemTimeZoneById(String) TimeZoneInfo.FindSystemTimeZoneById(String) TimeZoneInfo.FindSystemTimeZoneById(String) Method

Definition

Instanziiert ein neues TimeZoneInfo-Objekt basierend auf dessen Bezeichner.Instantiates a new TimeZoneInfo object based on its identifier.

public:
 static TimeZoneInfo ^ FindSystemTimeZoneById(System::String ^ id);
public static TimeZoneInfo FindSystemTimeZoneById (string id);
static member FindSystemTimeZoneById : string -> TimeZoneInfo
Public Shared Function FindSystemTimeZoneById (id As String) As TimeZoneInfo

Parameter

id
String String String String

Der Zeitzonenbezeichner, der der Id-Eigenschaft entspricht.The time zone identifier, which corresponds to the Id property.

Gibt zurück

Ein Objekt, dessen Bezeichner der Wert des id-Parameters ist.An object whose identifier is the value of the id parameter.

Ausnahmen

Das System verfügt nicht über ausreichend Arbeitsspeicher, um Informationen zur Zeitzone zu speichern.The system does not have enough memory to hold information about the time zone.

Der id-Parameter ist null.The id parameter is null.

Der von id angegebene Zeitzonenbezeichner wurde nicht gefunden.The time zone identifier specified by id was not found. Das bedeutet, dass kein Zeitzonenbezeichner vorhanden ist, dessen Name id entspricht, oder dass der Bezeichner vorhanden ist, jedoch keine Zeitzonendaten enthält.This means that a time zone identifier whose name matches id does not exist, or that the identifier exists but does not contain any time zone data.

Der Prozess verfügt nicht über die erforderlichen Berechtigungen zum Lesen aus dem Registrierungsschlüssel, der die Zeitzoneninformationen enthält.The process does not have the permissions required to read from the registry key that contains the time zone information.

Der Zeitzonenbezeichner wurde gefunden, aber die Registrierungsdaten sind beschädigt.The time zone identifier was found, but the registry data is corrupted.

Beispiele

Im folgenden Beispiel wird die FindSystemTimeZoneById Methode, um die japanische Normalzeit Zone abzurufen.The following example uses the FindSystemTimeZoneById method to retrieve the Tokyo Standard Time zone. Dies TimeZoneInfo Objekt wird dann verwendet, um die lokale Zeit mit der Zeit in Tokio zu konvertieren und zu bestimmen, ob es sich um Japanische Normalzeit oder Sommerzeit Tokio ist.This TimeZoneInfo object is then used to convert the local time to the time in Tokyo and to determine whether it is Tokyo Standard Time or Tokyo Daylight Time.

using System;

public class Example
{
   public static void Main()
   {
      // Get time in local time zone 
      DateTime thisTime = DateTime.Now;
      Console.WriteLine("Time in {0} zone: {1}", TimeZoneInfo.Local.IsDaylightSavingTime(thisTime) ?
                        TimeZoneInfo.Local.DaylightName : TimeZoneInfo.Local.StandardName, thisTime);
      Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(thisTime, TimeZoneInfo.Local));
      // Get Tokyo Standard Time zone
      TimeZoneInfo tst = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time");
      DateTime tstTime = TimeZoneInfo.ConvertTime(thisTime, TimeZoneInfo.Local, tst);      
      Console.WriteLine("Time in {0} zone: {1}", tst.IsDaylightSavingTime(tstTime) ?
                        tst.DaylightName : tst.StandardName, tstTime);
      Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(tstTime, tst));
   }
}
// The example displays output like the following when run on a system in the
// U.S. Pacific Standard Time zone:
//       Time in Pacific Standard Time zone: 12/6/2013 10:57:51 AM
//          UTC Time: 12/6/2013 6:57:51 PM
//       Time in Tokyo Standard Time zone: 12/7/2013 3:57:51 AM
//          UTC Time: 12/6/2013 6:57:51 PM
Module Example
   Public Sub Main()
      ' Get time in local time zone 
      Dim thisTime As Date = Date.Now
      Console.WriteLine("Time in {0} zone: {1}", IIf(TimeZoneInfo.Local.IsDaylightSavingTime(thisTime), 
                        TimeZoneInfo.Local.DaylightName, TimeZoneInfo.Local.StandardName), thisTime)
      Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(thisTime, TimeZoneInfo.Local))
      ' Get Tokyo Standard Time zone
      Dim tst As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time")
      Dim tstTime As Date = TimeZoneInfo.ConvertTime(thisTime, TimeZoneInfo.Local, tst)      
      Console.WriteLine("Time in {0} zone: {1}", IIf(tst.IsDaylightSavingTime(tstTime), 
                        tst.DaylightName, tst.StandardName), tstTime)
      Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(tstTime, tst))
   End Sub
End Module
' The example displays output like the following when run on a system in the U.S.
' Pacific Standard Time zone:
'    Time in Pacific Standard Time zone: 12/6/2013 10:57:51 AM
'       UTC Time: 12/6/2013 6:57:51 PM
'    Time in Tokyo Standard Time zone: 12/7/2013 3:57:51 AM
'       UTC Time: 12/6/2013 6:57:51 PM

Hinweise

Die id Parameter muss genau der Zeitzonenbezeichner lang, aber nicht in der Groß-/Kleinschreibung, nach einer erfolgreichen Übereinstimmung ausgeführt; entsprechen, also den Vergleich von id Bezeichner mit Zeitzone wird Groß-/Kleinschreibung.The id parameter must correspond exactly to the time zone's identifier in length, but not in case, for a successful match to occur; that is, the comparison of id with time zone identifiers is case-insensitive. Wenn es sich bei Zeitzonenobjekte, die auf Grundlage von partiellen Übereinstimmungen abgerufen werden sollen, können Sie benutzerdefinierte Prozeduren, die die schreibgeschützte Auflistung von verwenden schreiben TimeZoneInfo zurückgegebenen Objekte die GetSystemTimeZones Methode.If you want to retrieve time zone objects based on partial matches, you can write custom procedures that work with the read-only collection of TimeZoneInfo objects returned by the GetSystemTimeZones method.

Auf Windows-Systemen FindSystemTimeZoneById versucht, id auf den Namen der Unterschlüssel HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Time Zones verzeichnet sind Branch der Registrierung.On Windows systems, FindSystemTimeZoneById tries to match id to the subkey names of the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Time Zones branch of the registry. Unter Linux und MacOS verfügbar in Zeitzoneninformationen verwendet die ICU-Bibliothek.On Linux and macOS, it uses time zone information available in the ICU Library. Wenn die Registrierung oder der Bibliothek die Informationen für die Zeitzone keine gewünscht, können Sie erstellen eine bestimmte Zeitzone entweder durch Aufrufen einer der Überladungen der der CreateCustomTimeZone Methode oder durch Aufrufen von FromSerializedString zum Deserialisieren einer TimeZoneInfo -Objekt, Stellt die erforderlichen Zeitzone dar.If the registry or the library does not have the information for the time zone you desire, you can create a particular time zone either by calling one of the overloads of the CreateCustomTimeZone method or by calling FromSerializedString to deserialize a TimeZoneInfo object that represents the required time zone. Allerdings Zeitzonen erstellt diese Methodenaufrufe sind nicht vom System vorgegebene Zeit und kann nicht abgerufen werden, mithilfe der FindSystemTimeZoneById Methode.However, time zones created by these method calls are not system-defined time and cannot be retrieved using the FindSystemTimeZoneById method. Diese benutzerdefinierte Zeitzonen kann nur über den Objektverweis zurückgegebenes zugegriffen werden die CreateCustomTimeZone oder FromSerializedString Methodenaufruf.These custom time zones can be accessed only through the object reference returned by the CreateCustomTimeZone or FromSerializedString method call.

Diese Methode gibt ein neues TimeZoneInfo -Instanz für jeden Methodenaufruf; es gibt keine zwischengespeicherten Objekte zurück.This method returns a new TimeZoneInfo instance for each method call; it does not return cached objects. Dies kann die Leistung in Anwendungen, die aufrufen verschlechtern der FindSystemTimeZoneById Methode wiederholt mit dem gleichen Bezeichner.This may impact performance in applications that call the FindSystemTimeZoneById method repeatedly with the same identifier.

Gilt für:

Siehe auch