TimeZoneInfo.FindSystemTimeZoneById(String) Método

Definición

Crea instancias de un nuevo objeto TimeZoneInfo según su identificador.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

Parámetros

id
String

Identificador de la zona horaria, que se corresponde con la propiedad Id.The time zone identifier, which corresponds to the Id property.

Devoluciones

TimeZoneInfo

Objeto cuyo identificador es el valor del parámetro id.An object whose identifier is the value of the id parameter.

Excepciones

El sistema no tiene suficiente memoria para almacenar información sobre la zona horaria.The system does not have enough memory to hold information about the time zone.

El parámetro id es null.The id parameter is null.

No se encontró el identificador de zona horaria especificado por id.The time zone identifier specified by id was not found. Esto significa que no existe ningún identificador de zona horaria cuyo nombre coincida con id, o que el identificador existe pero no contiene ningún dato de zona horaria.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.

El proceso no tiene los permisos necesarios para leer la clave del registro que contiene la información de zona horaria.The process does not have the permissions required to read from the registry key that contains the time zone information.

Se encontró el identificador de zona horaria, pero los datos del Registro están dañados.The time zone identifier was found, but the registry data is corrupted.

Ejemplos

En el ejemplo siguiente se usa el FindSystemTimeZoneById método para recuperar la zona horaria estándar de Tokio.The following example uses the FindSystemTimeZoneById method to retrieve the Tokyo Standard Time zone. Este TimeZoneInfo objeto se usa para convertir la hora local a la hora de Tokio y para determinar si es la hora estándar de Tokio o el horario de verano de Tokio.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

Comentarios

El id parámetro debe coincidir exactamente con el identificador de la zona horaria en longitud, pero no en caso de que se produzca una coincidencia correcta; es decir, la comparación de id con los identificadores de zona horaria no distingue entre mayúsculas y minúsculas.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. Si desea recuperar objetos de zona horaria basados en coincidencias parciales, puede escribir procedimientos personalizados que funcionen con la colección de solo lectura de los TimeZoneInfo objetos devueltos por el GetSystemTimeZones método.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.

En los sistemas Windows, FindSystemTimeZoneById intenta coincidir con id los nombres de subclave de la rama HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Time Zones del registro.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. En Linux y macOS, usa la información de zona horaria disponible en la biblioteca ICU.On Linux and macOS, it uses time zone information available in the ICU Library. Si el registro o la biblioteca no tienen la información de la zona horaria que desea, puede crear una zona horaria determinada mediante una llamada a una de las sobrecargas del CreateCustomTimeZone método o mediante una llamada FromSerializedString a para deserializar un TimeZoneInfo objeto que representa la zona horaria necesaria.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. Sin embargo, las zonas horarias creadas por estas llamadas a métodos no son de tiempo definido por el sistema y no se pueden recuperar mediante el FindSystemTimeZoneById método.However, time zones created by these method calls are not system-defined time and cannot be retrieved using the FindSystemTimeZoneById method. Solo se puede tener acceso a estas zonas horarias personalizadas a través de la referencia de objeto devuelta por la CreateCustomTimeZone FromSerializedString llamada al método o.These custom time zones can be accessed only through the object reference returned by the CreateCustomTimeZone or FromSerializedString method call.

Este método devuelve una nueva TimeZoneInfo instancia para cada llamada al método; no devuelve los objetos almacenados en caché.This method returns a new TimeZoneInfo instance for each method call; it does not return cached objects. Esto puede afectar al rendimiento en las aplicaciones que llaman al FindSystemTimeZoneById método repetidamente con el mismo identificador.This may impact performance in applications that call the FindSystemTimeZoneById method repeatedly with the same identifier.

Se aplica a

Consulte también