TimeZoneInfo.HasSameRules(TimeZoneInfo) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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é ).