TimeZoneInfo.HasSameRules(TimeZoneInfo) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Anger om det aktuella objektet och ett annat TimeZoneInfo objekt har samma justeringsregler.
public:
bool HasSameRules(TimeZoneInfo ^ other);
public bool HasSameRules(TimeZoneInfo other);
member this.HasSameRules : TimeZoneInfo -> bool
Public Function HasSameRules (other As TimeZoneInfo) As Boolean
Parametrar
- other
- TimeZoneInfo
Ett andra objekt att jämföra med det aktuella TimeZoneInfo objektet.
Returer
trueom de två tidszonerna har identiska justeringsregler och en identisk basförskjutning. annars . false
Undantag
Parametern other är null.
Exempel
Vanligtvis har ett antal tidszoner som definierats i registret på Windows och ICU Library på Linux och macOS samma förskjutning från Coordinated Universal Time (UTC) och samma justeringsregler. I följande exempel visas en lista över dessa tidszoner i konsolen.
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
Kommentarer
TimeZoneInfo.Equals(TimeZoneInfo) Precis som metoden HasSameRules anger metoden om två tidszoner har samma basförskjutning (som definieras av BaseUtcOffset egenskapen) och samma justeringsregler. TimeZoneInfo.Equals(TimeZoneInfo) Till skillnad från metoden HasSameRules jämför inte tidszonsidentifierare (som definieras av egenskapenId).