Partage via


TimeZoneInfo.HasSameRules(TimeZoneInfo) Méthode

Définition

Indique si l'objet actuel et un autre objet TimeZoneInfo sont soumis aux mêmes règles d'ajustement.

public:
 bool HasSameRules(TimeZoneInfo ^ other);
public bool HasSameRules (TimeZoneInfo other);
member this.HasSameRules : TimeZoneInfo -> bool
Public Function HasSameRules (other As TimeZoneInfo) As Boolean

Paramètres

other
TimeZoneInfo

Deuxième objet à comparer à l'objet TimeZoneInfoactuel.

Retours

true si les deux fuseaux horaires comportent les mêmes règles d'ajustement et un offset de base identique ; sinon, false.

Exceptions

Le paramètre other a la valeur null.

Exemples

En règle générale, un certain nombre de fuseaux horaires définis dans le Registre sur Windows et la bibliothèque ICU sur Linux et macOS ont le même décalage par rapport au temps universel coordonné (UTC) et les mêmes règles d’ajustement. L’exemple suivant affiche la liste de ces fuseaux horaires dans la console.

ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();
TimeZoneInfo[] timeZoneArray = new TimeZoneInfo[timeZones.Count];
timeZones.CopyTo(timeZoneArray, 0);
// Iterate array from top to bottom
for (int ctr = timeZoneArray.GetUpperBound(0); ctr >= 1; ctr--)
{
   // Get next item from top
   TimeZoneInfo thisTimeZone = timeZoneArray[ctr];
   for (int compareCtr = 0; compareCtr <= ctr - 1; compareCtr++)
   {
      // Determine if time zones have the same rules
      if (thisTimeZone.HasSameRules(timeZoneArray[compareCtr]))
      {
         Console.WriteLine("{0} has the same rules as {1}", 
                           thisTimeZone.StandardName,
                           timeZoneArray[compareCtr].StandardName);
      }
   }
}
let timeZones = TimeZoneInfo.GetSystemTimeZones()
let timeZoneArray = Array.ofSeq timeZones
// Iterate array from top to bottom
for ctr = timeZoneArray.GetUpperBound 0 - 1 downto 0 do
    // Get next item from top
    let thisTimeZone = timeZoneArray[ctr]
    for compareCtr = 0 to ctr - 1 do
        // Determine if time zones have the same rules
        if thisTimeZone.HasSameRules timeZoneArray[compareCtr] then
            printfn $"{thisTimeZone.StandardName} has the same rules as {timeZoneArray[compareCtr].StandardName}"
Dim timeZones As ReadOnlyCollection(Of TimeZoneInfo) = TimeZoneInfo.GetSystemTimeZones()
Dim timeZoneArray(timeZones.Count - 1) As TimeZoneInfo
timeZones.CopyTo(timeZoneArray, 0) 
'Dim arrayPtr As Integer = 1
' Iterate array from top to bottom
For ctr As Integer = timeZoneArray.GetUpperBound(0) To 1 Step -1
   ' Get next item from top
   Dim thisTimeZone As TimeZoneInfo = timeZoneArray(ctr)
   For compareCtr As Integer = 0 To ctr - 1
      ' Determine if time zones have the same rules
      If thisTimeZone.HasSameRules(timeZoneArray(compareCtr)) Then
         Console.WriteLine("{0} has the same rules as {1}", _
                           thisTimeZone.StandardName, _
                           timeZoneArray(compareCtr).StandardName)
      End If                     
   Next      
Next

Remarques

Comme la TimeZoneInfo.Equals(TimeZoneInfo) méthode, la HasSameRules méthode indique si deux fuseaux horaires ont le même décalage de base (tel que défini par la BaseUtcOffset propriété) et les mêmes règles d’ajustement. Contrairement à la TimeZoneInfo.Equals(TimeZoneInfo) méthode, HasSameRules ne compare pas les identificateurs de fuseau horaire (tels que définis par la Id propriété ).

S’applique à