TimeZoneInfo.HasSameRules(TimeZoneInfo) Метод

Определение

Указывает, совпадают ли правила коррекции текущего объекта и другого объекта TimeZoneInfo.Indicates whether the current object and another TimeZoneInfo object have the same adjustment rules.

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

Параметры

other
TimeZoneInfo

Второй объект, сравниваемый с текущим объектом TimeZoneInfo.A second object to compare with the current TimeZoneInfo object.

Возвращаемое значение

Значение true, если правила коррекции и базовые смещения двух часовых поясов совпадают; в противном случае — значение false.true if the two time zones have identical adjustment rules and an identical base offset; otherwise, false.

Исключения

Параметр other содержит значение null.The other parameter is null.

Примеры

Как правило, ряд часовых поясов, определенных в реестре Windows и библиотеке ICU в Linux и macOS, имеют одинаковое смещение относительно времени в формате UTC и тех же правил коррекции.Typically, a number of time zones defined in the registry on Windows and the ICU Library on Linux and macOS have the same offset from Coordinated Universal Time (UTC) and the same adjustment rules. В следующем примере на консоль выводится список этих часовых поясов.The following example displays a list of these time zones to the 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);
      }
   }
}
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

Комментарии

Как и метод TimeZoneInfo.Equals(TimeZoneInfo), метод HasSameRules указывает, имеют ли два часовых пояса одно и то же базовое смещение (как определено свойством BaseUtcOffset) и те же правила коррекции.Like the TimeZoneInfo.Equals(TimeZoneInfo) method, the HasSameRules method indicates whether two time zones have the same base offset (as defined by the BaseUtcOffset property) and the same adjustment rules. В отличие от метода TimeZoneInfo.Equals(TimeZoneInfo), HasSameRules не сравнивает идентификаторы часовых поясов (как определено свойством Id).Unlike the TimeZoneInfo.Equals(TimeZoneInfo) method, HasSameRules does not compare time zone identifiers (as defined by the Id property).

Применяется к