TimeZone.ToLocalTime(DateTime) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 time
DateTime 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