Partager via


TimeZone.ToLocalTime(DateTime) Méthode

Définition

Retourne l'heure locale qui correspond à une valeur d'heure et de date spécifiée.

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

Paramètres

time
DateTime

Une heure de temps universel (UTC, Universal Time Coordinated).

Retours

Un objet DateTime dont la valeur est l'heure locale qui correspond à time.

Remarques

Le tableau suivant montre la relation entre le time paramètre et la DateTime valeur retournée par cette méthode.

Paramètre time Comportement Valeur retournée
Heure UTC (DateTimeKind.UtcCoordinated Universal Time). Convertit l’heure UTC en heure locale. Un objet DateTime dont la valeur est l'heure locale qui correspond à time.
Heure locale (DateTimeKind.Local). Aucune conversion n’est nécessaire. Même DateTime valeur représentée par le time paramètre .
Heure non spécifiée (DateTimeKind.Unspecified). Suppose que l’heure est UTC et la convertit de l’heure UTC à l’heure locale. Un objet DateTime dont la valeur est l'heure locale qui correspond à time.

Si le fuseau horaire local observe l’heure d’été, ToLocalTime applique la règle d’ajustement actuelle à time lors de l’exécution de la conversion.

Notes

La ToLocalTime méthode reconnaît uniquement la règle d’ajustement actuelle de l’heure d’été pour le fuseau horaire local. Par conséquent, il est garanti de retourner avec précision l’heure locale correspondant à une heure UTC particulière uniquement pendant la période pendant laquelle la règle d’ajustement la plus récente est en vigueur. Il peut retourner des résultats inexacts si time est une valeur de date et d’heure historique qui a été soumise à une règle d’ajustement précédente.

La ToLocalTime méthode correspond à la TimeZoneInfo.ConvertTimeFromUtc méthode avec son destinationTimeZone paramètre défini sur TimeZoneInfo.Local. Dans la mesure du possible, utilisez la TimeZoneInfo.ConvertTimeFromUtc méthode .

Notes pour les héritiers

Bien que cela ne soit pas obligatoire, dans la plupart des cas, les classes dérivées s’exécutant sous .NET Framework version 2.0 doivent remplacer l’implémentation par défaut de cette méthode. Dans les versions 1.0 et 1.1 du .NET Framework, la ToLocalTime méthode a appelé la méthode et a été ajustée pour l’heure GetUtcOffset(DateTime) d’été lors du retour de l’heure locale. Toutefois, à compter de .NET Framework 2.0, le comportement de l’implémentation par défaut dépend de la Kind propriété du time paramètre . Si sa valeur est Local, cette méthode retourne time inchangé. Si sa valeur est Utc ou Unspecified, cette méthode suppose que time est UTC et la convertit en heure système locale sans appeler la GetUtcOffset(DateTime) méthode.

Le code suivant fournit un remplacement simple de l’implémentation par défaut de la ToLocalTime méthode . Dans ce code, la internalTimeZone variable représente une instance privée de la 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

S’applique à

Voir aussi