Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

TimeZoneInfo.GetAdjustmentRules-Methode

Ruft ein Array von TimeZoneInfo.AdjustmentRule-Objekten ab, die auf das aktuelle TimeZoneInfo-Objekt angewendet werden.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)
public TimeZoneInfo.AdjustmentRule[] GetAdjustmentRules()

Rückgabewert

Typ: System.TimeZoneInfo.AdjustmentRule[]
Ein Array von Objekten für diese Zeitzone.
AusnahmeBedingung
OutOfMemoryException

Das System verfügt nicht über ausreichend Arbeitsspeicher, um im Arbeitsspeicher eine Kopie der Anpassungsregeln zu erstellen.

Die GetAdjustmentRules-Methode ruft ein Array von System.TimeZoneInfo.AdjustmentRule-Objekten ab. Jedes Objekt in dem Array definiert das effektive Anfangs- und Enddatum dieser Zeitzonenanpassung sowie das Delta (die genaue Differenz, um die die Zeit durch die Anpassung geändert wird). Außerdem geben zwei Eigenschaften System.TimeZoneInfo.TransitionTime-Objekte zurück, die den Zeitpunkt des jährlichen Wechsels zu und von der Standardzeit definieren.

Wenn eine Zeitzone über keine Anpassungsregeln verfügt, gibt die GetAdjustmentRules-Methode ein leeres Array zurück (ein Array, dessen Length 0 (null) ist).

Alle Änderungen an den von der GetAdjustmentRules-Methode zurückgegebenen Arrayelementen werden nicht in den Anpassungsregeln für eine bestimmte Zeitzone dargestellt. Zum Ändern der Anpassungsregeln einer Zeitzone (z. B. um den historischen Wechsel von und zur Sommerzeit darzustellen) müssen Sie eine neue Zeitzone mit den entsprechenden Anpassungsregeln erstellen und nicht die vorhandene Zeitzone ändern.

Im folgenden Beispiel werden alle im lokalen System definierten Zeitzonen abgerufen und die vollständigen Informationen zu den Anpassungsregeln in der Konsole angezeigt.


private enum WeekOfMonth 
{
   First = 1,
   Second = 2,
   Third = 3,
   Fourth = 4,
   Last = 5,
}

private static void ShowStartAndEndDates()
{
   // Get all time zones from system
   ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();
   string[] monthNames = CultureInfo.CurrentCulture.DateTimeFormat.MonthNames;
   // Get each time zone
   foreach (TimeZoneInfo timeZone in timeZones)
   {
      TimeZoneInfo.AdjustmentRule[] adjustments = timeZone.GetAdjustmentRules();
      // Display message for time zones with no adjustments
      if (adjustments.Length == 0)
      {
         Console.WriteLine("{0} has no adjustment rules", timeZone.StandardName);
      }   
      else
      {
         // Handle time zones with 1 or 2+ adjustments differently
         bool showCount = false;
         int ctr = 0;
         string spacer = "";

         Console.WriteLine("{0} Adjustment rules", timeZone.StandardName);
         if (adjustments.Length > 1)
         {
            showCount = true;
            spacer = "   ";
         }   
         // Iterate adjustment rules
         foreach (TimeZoneInfo.AdjustmentRule adjustment in adjustments)
         {
            if (showCount)
            { 
               Console.WriteLine("   Adjustment rule #{0}", ctr+1);
               ctr++;
            }
            // Display general adjustment information
            Console.WriteLine("{0}   Start Date: {1:D}", spacer, adjustment.DateStart);
            Console.WriteLine("{0}   End Date: {1:D}", spacer, adjustment.DateEnd);
            Console.WriteLine("{0}   Time Change: {1}:{2:00} hours", spacer, 
                              adjustment.DaylightDelta.Hours, adjustment.DaylightDelta.Minutes);
            // Get transition start information
            TimeZoneInfo.TransitionTime transitionStart = adjustment.DaylightTransitionStart;
            Console.Write("{0}   Annual Start: ", spacer);
            if (transitionStart.IsFixedDateRule)
            {
               Console.WriteLine("On {0} {1} at {2:t}", 
                                 monthNames[transitionStart.Month - 1], 
                                 transitionStart.Day, 
                                 transitionStart.TimeOfDay);
            }
            else
            {
               Console.WriteLine("The {0} {1} of {2} at {3:t}", 
                                 ((WeekOfMonth)transitionStart.Week).ToString(), 
                                 transitionStart.DayOfWeek.ToString(), 
                                 monthNames[transitionStart.Month - 1], 
                                 transitionStart.TimeOfDay);
            }
            // Get transition end information
            TimeZoneInfo.TransitionTime transitionEnd = adjustment.DaylightTransitionEnd;
            Console.Write("{0}   Annual End: ", spacer);
            if (transitionEnd.IsFixedDateRule)
            {
               Console.WriteLine("On {0} {1} at {2:t}", 
                                 monthNames[transitionEnd.Month - 1], 
                                 transitionEnd.Day, 
                                 transitionEnd.TimeOfDay);
            }
            else
            {
               Console.WriteLine("The {0} {1} of {2} at {3:t}", 
                                 ((WeekOfMonth)transitionEnd.Week).ToString(), 
                                 transitionEnd.DayOfWeek.ToString(), 
                                 monthNames[transitionEnd.Month - 1], 
                                 transitionEnd.TimeOfDay);
            }
         }
      }   
      Console.WriteLine();
   } 
}


.NET Framework

Unterstützt in: 4.5, 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.