TimeZoneInfo.GetAmbiguousTimeOffsets TimeZoneInfo.GetAmbiguousTimeOffsets TimeZoneInfo.GetAmbiguousTimeOffsets Method

Definition

Gibt Informationen zu den möglichen Datums- und Zeitwerten zurück, denen ein mehrdeutiger Datums- und Zeitwert zugeordnet werden kann.Returns information about the possible dates and times that an ambiguous date and time can be mapped to.

Überlädt

GetAmbiguousTimeOffsets(DateTime) GetAmbiguousTimeOffsets(DateTime) GetAmbiguousTimeOffsets(DateTime)

Gibt Informationen zu den möglichen Datums- und Zeitwerten zurück, denen ein mehrdeutiger Datums- und Zeitwert zugeordnet werden kann.Returns information about the possible dates and times that an ambiguous date and time can be mapped to.

GetAmbiguousTimeOffsets(DateTimeOffset) GetAmbiguousTimeOffsets(DateTimeOffset) GetAmbiguousTimeOffsets(DateTimeOffset)

Gibt Informationen zu den möglichen Datums- und Zeitwerten zurück, denen ein mehrdeutiger Datums- und Zeitwert zugeordnet werden kann.Returns information about the possible dates and times that an ambiguous date and time can be mapped to.

GetAmbiguousTimeOffsets(DateTime) GetAmbiguousTimeOffsets(DateTime) GetAmbiguousTimeOffsets(DateTime)

Gibt Informationen zu den möglichen Datums- und Zeitwerten zurück, denen ein mehrdeutiger Datums- und Zeitwert zugeordnet werden kann.Returns information about the possible dates and times that an ambiguous date and time can be mapped to.

public:
 cli::array <TimeSpan> ^ GetAmbiguousTimeOffsets(DateTime dateTime);
public TimeSpan[] GetAmbiguousTimeOffsets (DateTime dateTime);
member this.GetAmbiguousTimeOffsets : DateTime -> TimeSpan[]

Parameter

dateTime
DateTime DateTime DateTime

Ein Datum und eine Uhrzeit.A date and time.

Gibt zurück

Ein Array von Objekten, das mögliche UTC-Offsets (Coordinated Universal Time) darstellt, denen ein bestimmter Datums- und Uhrzeitwert zugeordnet werden kann.An array of objects that represents possible Coordinated Universal Time (UTC) offsets that a particular date and time can be mapped to.

Ausnahmen

dateTime ist keine mehrdeutige Zeit.dateTime is not an ambiguous time.

Beispiele

Das folgende Beispiel definiert eine Methode namens ShowPossibleUtcTimes , verwendet der GetAmbiguousTimeOffsets(DateTime) Methode, um eine mehrdeutige Zeit verbundwebsite zuordnen entsprechende Coordinated Universal Time (UTC) ein Timeout.The following example defines a method named ShowPossibleUtcTimes that uses the GetAmbiguousTimeOffsets(DateTime) method to map an ambiguous time to its possible corresponding Coordinated Universal Time (UTC) times.

private void ShowPossibleUtcTimes(DateTime ambiguousTime, TimeZoneInfo timeZone)
{
   // Determine if time is ambiguous in target time zone
   if (! timeZone.IsAmbiguousTime(ambiguousTime))
   {
      Console.WriteLine("{0} is not ambiguous in time zone {1}.", 
                        ambiguousTime, 
                        timeZone.DisplayName);
   }
   else
   {
      // Display time and its time zone (local, UTC, or indicated by timeZone argument)
      string originalTimeZoneName; 
      if (ambiguousTime.Kind == DateTimeKind.Utc)
         originalTimeZoneName = "UTC";
      else if (ambiguousTime.Kind == DateTimeKind.Local)
         originalTimeZoneName = "local time";
      else
         originalTimeZoneName = timeZone.DisplayName;

      Console.WriteLine("{0} {1} maps to the following possible times:", 
                        ambiguousTime, originalTimeZoneName);
      // Get ambiguous offsets 
      TimeSpan[] offsets = timeZone.GetAmbiguousTimeOffsets(ambiguousTime);
      // Handle times not in time zone of timeZone argument
      // Local time where timeZone is not local zone
      if ((ambiguousTime.Kind == DateTimeKind.Local) && ! timeZone.Equals(TimeZoneInfo.Local)) 
         ambiguousTime = TimeZoneInfo.ConvertTime(ambiguousTime, TimeZoneInfo.Local, timeZone);
      // UTC time where timeZone is not UTC zone   
      else if ((ambiguousTime.Kind == DateTimeKind.Utc) && ! timeZone.Equals(TimeZoneInfo.Utc))
         ambiguousTime = TimeZoneInfo.ConvertTime(ambiguousTime, TimeZoneInfo.Utc, timeZone);

      // Display each offset and its mapping to UTC
      foreach (TimeSpan offset in offsets)
      {
         if (offset.Equals(timeZone.BaseUtcOffset))
            Console.WriteLine("If {0} is {1}, {2} UTC", ambiguousTime, timeZone.StandardName, ambiguousTime - offset);
         else
            Console.WriteLine("If {0} is {1}, {2} UTC", ambiguousTime, timeZone.DaylightName, ambiguousTime - offset);
      }
   }            
}
Private Sub ShowPossibleUtcTimes(ambiguousTime As Date, timeZone As TimeZoneInfo)
   ' Determine if time is ambiguous in target time zone
   If Not timeZone.IsAmbiguousTime(ambiguousTime) Then
      Console.WriteLine("{0} is not ambiguous in time zone {1}.", _
                        ambiguousTime, _
                        timeZone.DisplayName)
   Else
      ' Display time and its time zone (local, UTC, or indicated by timeZone argument)
      Dim originalTimeZoneName As String 
      If ambiguousTime.Kind = DateTimeKind.Utc Then
         originalTimeZoneName = "UTC"
      ElseIf ambiguousTime.Kind = DateTimeKind.Local Then
         originalTimeZoneName = "local time"
      Else
         originalTimeZoneName = timeZone.DisplayName
      End If      
      Console.WriteLine("{0} {1} maps to the following possible times:", _
                        ambiguousTime, originalTimeZoneName)
      ' Get ambiguous offsets 
      Dim offsets() As TimeSpan = timeZone.GetAmbiguousTimeOffsets(ambiguousTime)
      ' Handle times not in time zone of timeZone argument
      ' Local time where timeZone is not local zone
      If (ambiguousTime.Kind = DateTimeKind.Local) And Not timeZone.Equals(TimeZoneInfo.Local) Then
         ambiguousTime = TimeZoneInfo.ConvertTime(ambiguousTime, TimeZoneInfo.Local, timeZone)
      ' UTC time where timeZone is not UTC zone   
      ElseIf (ambiguousTime.Kind = DateTimeKind.Utc) And Not timeZone.Equals(TimeZoneInfo.Utc) Then
         ambiguousTime = TimeZoneInfo.ConvertTime(ambiguousTime, TimeZoneInfo.Utc, timeZone)
      End If       
      ' Display each offset and its mapping to UTC
      For Each offset As TimeSpan In offsets
         If offset.Equals(timeZone.BaseUtcOffset) Then
            Console.WriteLine("If {0} is {1}, {2} UTC", ambiguousTime, timeZone.StandardName, ambiguousTime - offset)
         Else
            Console.WriteLine("If {0} is {1}, {2} UTC", ambiguousTime, timeZone.DaylightName, ambiguousTime - offset)
         End If   
      Next
   End If            
End Sub

Die Methode kann dann mit Code wie den folgenden aufgerufen werden:The method can then be called using code such as the following:

Console.WriteLine();
ShowPossibleUtcTimes(new DateTime(2007, 11, 4, 1, 0, 0), 
                     TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"));
Console.WriteLine();
ShowPossibleUtcTimes(new DateTime(2007, 11, 4, 01, 00, 00, DateTimeKind.Local), 
                     TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"));
Console.WriteLine();
ShowPossibleUtcTimes(new DateTime(2007, 11, 4, 00, 00, 00, DateTimeKind.Local), 
                     TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"));
Console.WriteLine();                     
ShowPossibleUtcTimes(new DateTime(2007, 11, 4, 01, 00, 00, DateTimeKind.Unspecified), 
                     TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"));
Console.WriteLine();
ShowPossibleUtcTimes(new DateTime(2007, 11, 4, 07, 00, 00, DateTimeKind.Utc), 
                     TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"));
// 
// This example produces the following output if run in the Pacific time zone:
//
//    11/4/2007 1:00:00 AM (GMT-06:00) Central Time (US & Canada) maps to the following possible times:
//    If 11/4/2007 1:00:00 AM is Central Standard Time, 11/4/2007 7:00:00 AM UTC
//    If 11/4/2007 1:00:00 AM is Central Daylight Time, 11/4/2007 6:00:00 AM UTC
//       
//    11/4/2007 1:00:00 AM Pacific Standard Time is not ambiguous in time zone (GMT-06:00) Central Time (US & Canada).
//     
//    11/4/2007 12:00:00 AM local time maps to the following possible times:
//    If 11/4/2007 1:00:00 AM is Central Standard Time, 11/4/2007 7:00:00 AM UTC
//    If 11/4/2007 1:00:00 AM is Central Daylight Time, 11/4/2007 6:00:00 AM UTC
//    
//    11/4/2007 1:00:00 AM (GMT-06:00) Central Time (US & Canada) maps to the following possible times:
//    If 11/4/2007 1:00:00 AM is Central Standard Time, 11/4/2007 7:00:00 AM UTC
//    If 11/4/2007 1:00:00 AM is Central Daylight Time, 11/4/2007 6:00:00 AM UTC
//       
//    11/4/2007 7:00:00 AM UTC maps to the following possible times:
//    If 11/4/2007 1:00:00 AM is Central Standard Time, 11/4/2007 7:00:00 AM UTC
//    If 11/4/2007 1:00:00 AM is Central Daylight Time, 11/4/2007 6:00:00 AM UTC
//
ShowPossibleUtcTimes(#11/4/2007 1:00:00#, TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"))
Console.WriteLine()
ShowPossibleUtcTimes(New Date(2007, 11, 4, 01, 00, 00, DateTimeKind.Local), _
                     TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"))
Console.WriteLine()
ShowPossibleUtcTimes(New Date(2007, 11, 4, 00, 00, 00, DateTimeKind.Local), _
                     TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"))
Console.WriteLine()                     
ShowPossibleUtcTimes(New Date(2007, 11, 4, 01, 00, 00, DateTimeKind.Unspecified), _
                     TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"))
Console.WriteLine()
ShowPossibleUtcTimes(New Date(2007, 11, 4, 07, 00, 00, DateTimeKind.Utc), _
                     TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"))
' 
' This example produces the following output if run in the Pacific time zone:
'
'    11/4/2007 1:00:00 AM (GMT-06:00) Central Time (US & Canada) maps to the following possible times:
'    If 11/4/2007 1:00:00 AM is Central Standard Time, 11/4/2007 7:00:00 AM UTC
'    If 11/4/2007 1:00:00 AM is Central Daylight Time, 11/4/2007 6:00:00 AM UTC
' 
'    11/4/2007 1:00:00 AM Pacific Standard Time is not ambiguous in time zone (GMT-06:00) Central Time (US & Canada).
' 
'    11/4/2007 12:00:00 AM local time maps to the following possible times:
'    If 11/4/2007 1:00:00 AM is Central Standard Time, 11/4/2007 7:00:00 AM UTC
'    If 11/4/2007 1:00:00 AM is Central Daylight Time, 11/4/2007 6:00:00 AM UTC
' 
'    11/4/2007 1:00:00 AM (GMT-06:00) Central Time (US & Canada) maps to the following possible times:
'    If 11/4/2007 1:00:00 AM is Central Standard Time, 11/4/2007 7:00:00 AM UTC
'    If 11/4/2007 1:00:00 AM is Central Daylight Time, 11/4/2007 6:00:00 AM UTC
' 
'    11/4/2007 7:00:00 AM UTC maps to the following possible times:
'    If 11/4/2007 1:00:00 AM is Central Standard Time, 11/4/2007 7:00:00 AM UTC
'    If 11/4/2007 1:00:00 AM is Central Daylight Time, 11/4/2007 6:00:00 AM UTC

Hinweise

Das genaue Verhalten dieser Methode hängt von die Beziehung zwischen der Kind Eigenschaft und die TimeZoneInfo -Objekts entsprechend der folgenden Tabelle gezeigt.The precise behavior of this method depends on the relationship between the Kind property and the TimeZoneInfo object, as the following table shows.

Typ der TimeZoneInfo-ObjektsTimeZoneInfo object type Kind-Eigenschaft-WertKind property value VerhaltenBehavior
TimeZoneInfo.Local DateTimeKind.Local oder DateTimeKind.UnspecifiedDateTimeKind.Local or DateTimeKind.Unspecified Mehrdeutige Zeit gibt offsets für dateTime.Returns ambiguous time offsets for dateTime.
TimeZoneInfo.Local DateTimeKind.Utc Konvertiert dateTime auf die lokale Zeit, und klicken Sie dann zurückgegeben, die mehrdeutige Zeit offsets für diese Zeit.Converts dateTime to the local time, and then returns ambiguous time offsets for that time.
TimeZoneInfo.Utc Beliebiger Wert.Any value. Löst ein ArgumentException.Throws an ArgumentException.
Alle anderen Zeitzone.Any other time zone. Local oder DateTimeKind.UtcLocal or DateTimeKind.Utc Konvertiert dateTime auf die angegebene Zeitzone, und klicken Sie dann bestimmt, ob diese Zeit mehrdeutig ist.Converts dateTime to the specified time zone, and then determines whether that time is ambiguous.
Alle anderen Zeitzone.Any other time zone. DateTimeKind.Unspecified Bestimmt, ob dateTime in die angegebene Zeitzone mehrdeutig ist.Determines whether dateTime is ambiguous in the specified time zone.

Die Reihenfolge der TimeSpan Objekte im Array zurückgegeben, die von dieser Methode ist nicht definiert.The order of TimeSpan objects in the array returned by this method is undefined. Sie können jedoch bestimmen, welches Element eine Abweichung von der Standardzeit der Zeitzone darstellt, durch Vergleichen ihres Werts mit der Zeitzone BaseUtcOffset Eigenschaft.However, you can determine which element represents an offset from the time zone's standard time by comparing its value with the time zone's BaseUtcOffset property. Um eine Standardzeit der Zeitzone eine mehrdeutige Zeit zuzuordnen, finden Sie unter Vorgehensweise: Auflösen von mehrdeutigen Zeiten.To map an ambiguous time to a time zone's standard time, see How to: Resolve Ambiguous Times.

Siehe auch

GetAmbiguousTimeOffsets(DateTimeOffset) GetAmbiguousTimeOffsets(DateTimeOffset) GetAmbiguousTimeOffsets(DateTimeOffset)

Gibt Informationen zu den möglichen Datums- und Zeitwerten zurück, denen ein mehrdeutiger Datums- und Zeitwert zugeordnet werden kann.Returns information about the possible dates and times that an ambiguous date and time can be mapped to.

public:
 cli::array <TimeSpan> ^ GetAmbiguousTimeOffsets(DateTimeOffset dateTimeOffset);
public TimeSpan[] GetAmbiguousTimeOffsets (DateTimeOffset dateTimeOffset);
member this.GetAmbiguousTimeOffsets : DateTimeOffset -> TimeSpan[]

Parameter

dateTimeOffset
DateTimeOffset DateTimeOffset DateTimeOffset

Ein Datum und eine Uhrzeit.A date and time.

Gibt zurück

Ein Array von Objekten, das mögliche UTC-Offsets (Coordinated Universal Time) darstellt, denen ein bestimmter Datums- und Uhrzeitwert zugeordnet werden kann.An array of objects that represents possible Coordinated Universal Time (UTC) offsets that a particular date and time can be mapped to.

Ausnahmen

dateTimeOffset ist keine mehrdeutige Zeit.dateTimeOffset is not an ambiguous time.

Hinweise

Das genaue Verhalten dieser Methode hängt von die Beziehung zwischen der Offset Eigenschaft der dateTimeOffset Parameter und die TimeZoneInfo Objekt.The precise behavior of this method depends on the relationship between the Offset property of the dateTimeOffset parameter and the TimeZoneInfo object. Wenn der Wert des der Offset Eigenschaft entspricht der aktuellen Zeitzone mögliche abweichungen von Coordinated Universal Time (UTC) für Datum und Uhrzeit, gibt die Methode die möglichen Offsets zurück.If the value of the Offset property corresponds to the current time zone's possible offsets from Coordinated Universal Time (UTC) for that date and time, the method returns the possible offsets. Andernfalls konvertiert dateTimeOffset auf die Zeit in der aktuellen Zeitzone und gibt dann die möglichen offsets, Datum und Uhrzeit.Otherwise, it converts dateTimeOffset to the time in the current time zone, and then returns the possible offsets of that date and time.

Die Reihenfolge der TimeSpan Objekte im Array zurückgegeben, die von dieser Methode ist nicht definiert.The order of TimeSpan objects in the array returned by this method is undefined. Sie können jedoch bestimmen, welches Element eine Abweichung von der Standardzeit der Zeitzone darstellt, durch Vergleichen ihres Werts mit der Zeitzone BaseUtcOffset Eigenschaft.However, you can determine which element represents an offset from the time zone's standard time by comparing its value with the time zone's BaseUtcOffset property. Um eine Standardzeit der Zeitzone eine mehrdeutige Zeit zuzuordnen, finden Sie unter Vorgehensweise: Auflösen von mehrdeutigen Zeiten.To map an ambiguous time to a time zone's standard time, see How to: Resolve Ambiguous Times.

Siehe auch

Gilt für: