Sdílet prostřednictvím


TimeZoneInfo.HasSameRules(TimeZoneInfo) Metoda

Definice

Určuje, zda aktuální objekt a jiný TimeZoneInfo objekt mají stejná pravidla úprav.

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

Parametry

other
TimeZoneInfo

Druhý objekt pro porovnání s aktuálním TimeZoneInfo objektem.

Návraty

truemají-li obě časová pásma stejná pravidla úprav a identický základní posun; v opačném případě . false

Výjimky

Parametr other je null.

Příklady

Řada časových pásem definovaných v registru ve Windows a knihovně ICU v Linuxu a macOS má obvykle stejný posun od koordinovaného univerzálního času (UTC) a stejná pravidla úprav. Následující příklad zobrazí seznam těchto časových pásem konzoly.

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

Poznámky

TimeZoneInfo.Equals(TimeZoneInfo) Stejně jako metoda i metoda určuje, HasSameRules jestli dvě časová pásma mají stejný základní posun (jak je definováno BaseUtcOffset vlastností) a stejná pravidla úprav. TimeZoneInfo.Equals(TimeZoneInfo) Na rozdíl od metody HasSameRules nesrovnává identifikátory časových pásem Id (definované vlastností).

Platí pro