TimeZoneInfo.ConvertTimeBySystemTimeZoneId Método

Definición

Convierte una hora en la hora de otra zona horaria basándose en un identificador de zona horaria.

Sobrecargas

ConvertTimeBySystemTimeZoneId(DateTime, String)

Convierte una hora en la hora de otra zona horaria basándose en el identificador de zona horaria.

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Convierte una hora en la hora de otra zona horaria basándose en el identificador de zona horaria.

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Convierte una hora de una zona horaria en otra basándose en los identificadores de zona horaria.

ConvertTimeBySystemTimeZoneId(DateTime, String)

Convierte una hora en la hora de otra zona horaria basándose en el identificador de zona horaria.

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

Parámetros

dateTime
DateTime

Fecha y hora que se van a convertir.

destinationTimeZoneId
String

Identificador de la zona horaria de destino.

Devoluciones

DateTime

Fecha y hora de la zona horaria de destino.

Excepciones

destinationTimeZoneId es null.

Se encontró el identificador de zona horaria, pero los datos del Registro están dañados.

El proceso no tiene los permisos necesarios para leer la clave del registro que contiene la información de zona horaria.

No se encontró el identificador destinationTimeZoneId en el sistema local.

Comentarios

Al realizar la conversión, el ConvertTimeBySystemTimeZoneId método aplica las reglas de ajuste en vigor en la destinationTimeZoneId zona horaria.

Esta sobrecarga es prácticamente idéntica a llamar al ConvertTime(DateTime, TimeZoneInfo) método , salvo que permite especificar la zona horaria de destino por su identificador en lugar de por una referencia de objeto. Este método es más útil cuando se debe convertir una hora sin recuperar el objeto de zona horaria que corresponde a él y no es necesario saber si la hora convertida es estándar o horario de verano.

El ConvertTimeBySystemTimeZoneId(DateTime, String) método determina la zona horaria de origen del valor de la dateTime propiedad del Kind parámetro, como se muestra en la tabla siguiente.

Valor de la propiedad Kind Zona horaria de origen Comportamiento de método
DateTimeKind.Local Local Convierte la hora local en la hora en destinationTimeZone.
DateTimeKind.Utc Utc Convierte la hora universal coordinada (UTC) en la hora en destinationTimeZone.
DateTimeKind.Unspecified Se supone que es Local. Convierte la hora local en la hora en destinationTimeZone.

La Kind propiedad del valor devuelto DateTime se establece como se muestra en la tabla siguiente.

Condición Valor de la propiedad Kind devuelto
El valor de destinationTimeZone es TimeZoneInfo.Utc.Id. DateTimeKind.Utc
Cualquier otro destinationTimeZone valor. DateTimeKind.Unspecified

Si el valor del dateTime parámetro es una hora local ambigua, se interpreta como una hora estándar. Si el dateTime parámetro es una hora local no válida, este método produce una ArgumentExceptionexcepción .

Si la conversión de da como resultado un valor de dateTime fecha y hora anterior o posterior a DateTime.MaxValueDateTime.MinValue , este método devuelve DateTime.MinValue o DateTime.MaxValue, respectivamente.

Este método recupera información sobre la zona horaria cuyo identificador especifica el destinationTimeZoneId parámetro del Registro en sistemas Windows y desde la biblioteca de ICU en Linux y macOS. No se puede recuperar un objeto de zona horaria que se crea mediante el CreateCustomTimeZone método . El destinationTimeZoneId parámetro debe corresponder exactamente al identificador de la zona horaria, pero no en caso de que se produzca una coincidencia correcta; es decir, la comparación de con los identificadores de destinationTimeZoneId zona horaria no distingue mayúsculas de minúsculas.

Consulte también

Se aplica a

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Convierte una hora en la hora de otra zona horaria basándose en el identificador de zona horaria.

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

Parámetros

dateTimeOffset
DateTimeOffset

Fecha y hora que se van a convertir.

destinationTimeZoneId
String

Identificador de la zona horaria de destino.

Devoluciones

DateTimeOffset

Fecha y hora de la zona horaria de destino.

Excepciones

destinationTimeZoneId es null.

Se encontró el identificador de zona horaria, pero los datos del registro está dañados.

El proceso no tiene los permisos necesarios para leer la clave del registro que contiene la información de zona horaria.

No se encontró el identificador destinationTimeZoneId en el sistema local.

Comentarios

Al realizar la conversión, el ConvertTimeBySystemTimeZoneId método aplica las reglas de ajuste en vigor en la destinationTimeZoneId zona horaria.

Esta sobrecarga es idéntica a llamar al ConvertTime(DateTimeOffset, TimeZoneInfo) método , salvo que permite especificar la zona horaria de destino por su identificador en lugar de por una referencia de objeto. Este método es más útil cuando se debe convertir una hora sin recuperar el objeto de zona horaria que corresponde a él y no es necesario saber si la hora convertida es estándar o horario de verano.

Dado que el dateTimeOffset parámetro representa una fecha y hora junto con el desplazamiento de esa hora de la hora universal coordinada (UTC), no puede representar una hora ambigua o una hora no válida.

Este método recupera la zona horaria cuyo identificador especifica el destinationTimeZoneId parámetro del Registro en Windows sistemas y desde la biblioteca de ICU en Linux y macOS. No se puede recuperar un objeto de zona horaria que se crea mediante el CreateCustomTimeZone método . El destinationTimeZoneId parámetro debe corresponder exactamente al identificador de la zona horaria, pero no en caso de que se produzca una coincidencia correcta; es decir, la comparación de con los identificadores de destinationTimeZoneId zona horaria no distingue mayúsculas de minúsculas.

Al convertir el dateTimeOffset valor en la hora de la zona horaria de destino, el método tiene en cuenta las reglas de ajuste en vigor en la zona horaria de destino.

Si la conversión de da como resultado un valor de dateTimeOffset fecha y hora anterior o posterior a DateTimeOffset.MaxValueDateTimeOffset.MinValue , este método devuelve DateTimeOffset.MinValue o DateTimeOffset.MaxValue, respectivamente.

Consulte también

Se aplica a

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Convierte una hora de una zona horaria en otra basándose en los identificadores de zona horaria.

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

Parámetros

dateTime
DateTime

Fecha y hora que se van a convertir.

sourceTimeZoneId
String

Identificador de la zona horaria de origen.

destinationTimeZoneId
String

Identificador de la zona horaria de destino.

Devoluciones

DateTime

Fecha y hora de la zona horaria de destino que se corresponde con el parámetro dateTime de la zona horaria de origen.

Excepciones

La propiedad Kind del parámetro dateTime no se corresponde con la zona horaria de origen.

o bien dateTime es una hora no válida en la zona horaria de origen.

sourceTimeZoneId es null.

O bien destinationTimeZoneId es null.

Se encontraron identificadores de zona horaria, pero los datos del Registro están dañados.

El usuario no tiene los permisos necesarios para leer desde las claves del Registro que contienen datos de zona horaria.

No se encontró el identificador sourceTimeZoneId en el sistema local.

o bien No se encontró el identificador destinationTimeZoneId en el sistema local.

Ejemplos

En el ejemplo siguiente se usa el TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) método para mostrar la hora que corresponde a la hora del sistema local en ocho ciudades del mundo.

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

Comentarios

Al realizar la conversión, el ConvertTimeBySystemTimeZoneId método aplica las reglas de ajuste en vigor en la destinationTimeZoneId zona horaria.

Aunque es similar al TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) método , puede usar TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) para especificar las zonas horarias de origen y destino mediante sus identificadores en lugar de sus TimeZoneInfo objetos. Este método es más útil cuando se debe convertir una hora sin recuperar el objeto de zona horaria que corresponde a él y no es necesario saber si la hora convertida es estándar o horario de verano.

Este método recupera las zonas horarias cuyos identificadores son los sourceTimeZoneId parámetros y destinationTimeZoneId del Registro en sistemas Windows y desde la biblioteca de ICU en Linux y macOS. No puede recuperar objetos de zona horaria creados mediante el CreateCustomTimeZone método .

El valor de la Kind propiedad del dateTime parámetro debe corresponder al sourceTimeZoneId parámetro , como se muestra en la tabla siguiente.

Valor DateTime.Kind valor sourceTimeZone Comportamiento de método
DateTimeKind.Utc Es igual a TimeZoneInfo.Utc.Id. dateTime Convierte la hora de la zona horaria de destino.
DateTimeKind.Utc Does not equal TimeZoneInfo.Utc.Id. Produce un ArgumentExceptionobjeto .
DateTimeKind.Local Es igual a TimeZoneInfo.Local.Id. dateTime Convierte la hora de la zona horaria de destino.
DateTimeKind.Local Does not equal TimeZoneInfo.Local.Id. Produce un ArgumentExceptionobjeto .
DateTimeKind.Unspecified Cualquier. dateTime Convierte la hora de la zona horaria de destino.

Dado que se basa en llamadas al FindSystemTimeZoneById método , el ConvertTimeBySystemTimeZoneId método realiza una búsqueda sin distinción entre mayúsculas y minúsculas para buscar las zonas horarias que corresponden a sourceTimeZoneId y destinationTimeZoneId.

Si el valor del dateTime parámetro es una hora ambigua en la zona horaria de origen, se interpreta como una hora estándar. Si el dateTime parámetro es una hora no válida en la zona horaria de origen, este método produce un ArgumentException.

La Kind propiedad del valor devuelto DateTime se establece en a DateTimeKind.Unspecified menos que la zona horaria de destino sea hora universal coordinada (UTC), en cuyo caso se establece DateTimeKind.Utcen .

Consulte también

Se aplica a