Condividi tramite


TimeZone.ToLocalTime(DateTime) Metodo

Definizione

Restituisce l'ora locale corrispondente a un valore di data e ora specificato.

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

Parametri

time
DateTime

Ora UTC (Coordinated Universal Time).

Restituisce

Oggetto DateTime il cui valore è l'ora locale corrispondente a time.

Commenti

Nella tabella seguente viene illustrata la relazione tra il parametro e il timeDateTime valore restituito da questo metodo.

Parametro time. Comportamento Valore restituito
Ora UTC (Coordinated Universal Time) (DateTimeKind.Utc). Converte l'ora dall'ora UTC all'ora locale. Oggetto DateTime il cui valore è l'ora locale corrispondente a time.
Ora locale (DateTimeKind.Local). Nessuna conversione necessaria. Lo stesso DateTime valore rappresentato dal time parametro .
Ora non specificata (DateTimeKind.Unspecified). Si presuppone che l'ora sia UTC e la converta dall'ora UTC all'ora locale. Oggetto DateTime il cui valore è l'ora locale corrispondente a time.

Se il fuso orario locale osserva l'ora legale, ToLocalTime applica la regola di regolazione corrente a time quando si esegue la conversione.

Nota

Il ToLocalTime metodo riconosce solo la regola di regolazione dell'ora legale corrente per il fuso orario locale. Di conseguenza, è garantito restituire in modo accurato l'ora locale corrispondente a una determinata ora UTC solo durante il periodo in cui la regola di regolazione più recente è effettiva. Può restituire risultati non accurati se time è un valore di data e ora cronologico soggetto a una regola di regolazione precedente.

Il ToLocalTime metodo corrisponde al metodo con il TimeZoneInfo.ConvertTimeFromUtc relativo destinationTimeZone parametro impostato su TimeZoneInfo.Local. Se possibile, usare il TimeZoneInfo.ConvertTimeFromUtc metodo .

Note per gli eredi

Anche se non è necessario, nella maggior parte dei casi le classi derivate in esecuzione in .NET Framework versione 2.0 devono eseguire l'override dell'implementazione predefinita di questo metodo. In .NET Framework versioni 1.0 e 1.1, il ToLocalTime metodo denominato metodo GetUtcOffset(DateTime) e modificato per l'ora legale quando restituisce l'ora locale. Tuttavia, a partire da .NET Framework 2.0, il comportamento dell'implementazione predefinita dipende Kind dalla proprietà del time parametro. Se il valore è Local, questo metodo restituisce time invariato. Se il valore è o Unspecified, questo metodo presuppone time che sia Utc UTC e lo converte nell'ora del sistema locale senza chiamare il GetUtcOffset(DateTime) metodo.

Il codice seguente fornisce un semplice override dell'implementazione predefinita del ToLocalTime metodo. In questo codice la internalTimeZone variabile rappresenta un'istanza privata della TimeZone classe:

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

Si applica a

Vedi anche