TimeZone.ToLocalTime(DateTime) Método

Definición

Devuelve la hora local correspondiente a un valor especificado de fecha y hora.

public:
 virtual DateTime ToLocalTime(DateTime time);
public virtual DateTime ToLocalTime (DateTime time);
abstract member ToLocalTime : DateTime -> DateTime
override this.ToLocalTime : DateTime -> DateTime
Public Overridable Function ToLocalTime (time As DateTime) As DateTime

Parámetros

time
DateTime

Hora universal coordinada (hora UTC).

Devoluciones

Un objeto DateTime cuyo valor es la hora local correspondiente a time.

Comentarios

En la tabla siguiente se muestra la relación entre el time parámetro y el DateTime valor devuelto por este método.

Parámetro time Comportamiento Valor devuelto
Hora universal coordinada (UTC) (DateTimeKind.Utc). Convierte la hora de UTC a la hora local. Un objeto DateTime cuyo valor es la hora local correspondiente a time.
Una hora local (DateTimeKind.Local). No es necesario realizar ninguna conversión. El mismo DateTime valor representado por el time parámetro .
Hora no especificada (DateTimeKind.Unspecified). Se supone que la hora es UTC y la convierte de UTC a la hora local. Un objeto DateTime cuyo valor es la hora local correspondiente a time.

Si la zona horaria local observa el horario de verano, ToLocalTime aplica la regla de ajuste actual a time al realizar la conversión.

Nota

El ToLocalTime método reconoce solo la regla de ajuste del horario de verano actual para la zona horaria local. Como resultado, se garantiza que devuelva con precisión la hora local correspondiente a una hora UTC determinada solo durante el período en el que está vigente la regla de ajuste más reciente. Puede devolver resultados inexactos si time es un valor histórico de fecha y hora que estaba sujeto a una regla de ajuste anterior.

El ToLocalTime método corresponde al TimeZoneInfo.ConvertTimeFromUtc método con su destinationTimeZone parámetro establecido en TimeZoneInfo.Local. Siempre que sea posible, use el TimeZoneInfo.ConvertTimeFromUtc método .

Notas a los desarrolladores de herederos

Aunque no es necesario, en la mayoría de los casos las clases derivadas que se ejecutan en .NET Framework versión 2.0 deben invalidar la implementación predeterminada de este método. En las versiones 1.0 y 1.1 de .NET Framework, el ToLocalTime método llamó al GetUtcOffset(DateTime) método y se ajustó para el horario de verano al devolver la hora local. Sin embargo, a partir de .NET Framework 2.0, el comportamiento de la implementación predeterminada depende de la Kind propiedad del time parámetro . Si su valor es Local, este método devuelve time sin cambios. Si su valor es o UtcUnspecified, este método supone time que es UTC y lo convierte en la hora del sistema local sin llamar al GetUtcOffset(DateTime) método .

El código siguiente proporciona una invalidación simple de la implementación predeterminada del ToLocalTime método . En este código, la internalTimeZone variable representa una instancia privada de la TimeZone clase :

public override DateTime ToLocalTime(DateTime time)
{
   if (time.Kind == DateTimeKind.Local)
   {
      return time;
   }
   else if (time.Kind == DateTimeKind.Utc)
   {
      DateTime returnTime = new DateTime(time.Ticks, DateTimeKind.Local);
      returnTime += this.GetUtcOffset(returnTime);
      if (internalTimeZone.IsDaylightSavingTime(returnTime))
         returnTime -= new TimeSpan(1, 0, 0);
      return returnTime;
   }      
   else
   {
      throw new ArgumentException("The source time zone cannot be determined.");
   }      
}
Public Overrides Function ToLocalTime(time As Date) As Date
   If time.Kind = DateTimeKind.Local Then
      Return time
   ElseIf time.Kind = DateTimeKind.Utc Then
      Dim returnTime As New Date(time.Ticks, DateTimeKind.Local)
      returnTime += me.GetUtcOffset(returnTime)
      if internalTimeZone.IsDaylightSavingTime(returnTime) Then
         returnTime -= New TimeSpan(1, 0, 0)
      End If
      Return returnTime      
   Else
      Throw New ArgumentException("The source time zone cannot be determined.")
   End If      
End Function

Se aplica a

Consulte también