TimeZoneInfo.GetAmbiguousTimeOffsets TimeZoneInfo.GetAmbiguousTimeOffsets TimeZoneInfo.GetAmbiguousTimeOffsets Method

정의

모호한 날짜 및 시간을 매핑할 수 있는 가능한 날짜 및 시간에 대한 정보를 반환합니다.Returns information about the possible dates and times that an ambiguous date and time can be mapped to.

오버로드

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

모호한 날짜 및 시간을 매핑할 수 있는 가능한 날짜 및 시간에 대한 정보를 반환합니다.Returns information about the possible dates and times that an ambiguous date and time can be mapped to.

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

모호한 날짜 및 시간을 매핑할 수 있는 가능한 날짜 및 시간에 대한 정보를 반환합니다.Returns information about the possible dates and times that an ambiguous date and time can be mapped to.

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

모호한 날짜 및 시간을 매핑할 수 있는 가능한 날짜 및 시간에 대한 정보를 반환합니다.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[]

매개 변수

dateTime
DateTime DateTime DateTime

날짜와 시간입니다.A date and time.

반환

특정 날짜 및 시간이 매핑될 수 있는 가능한 UTC(협정 세계시) 오프셋을 나타내는 개체의 배열입니다.An array of objects that represents possible Coordinated Universal Time (UTC) offsets that a particular date and time can be mapped to.

예외

dateTime이 모호한 시간이 아닌 경우dateTime is not an ambiguous time.

예제

다음 예제에서는 라는 메서드를 정의 ShowPossibleUtcTimes 를 사용 하는 GetAmbiguousTimeOffsets(DateTime) 모호한 시간을 해당 Utc (협정 세계시) 시간 수에 매핑할 메서드를 합니다.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

그런 다음 다음과 같은 코드를 사용 하 여 메서드를 호출할 수 있습니다.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

설명

이 메서드의 정확한 동작은 간의 관계에 따라 합니다 Kind 속성 및 TimeZoneInfo 다음 표에서 보여 주듯이 개체입니다.The precise behavior of this method depends on the relationship between the Kind property and the TimeZoneInfo object, as the following table shows.

TimeZoneInfo 개체 유형TimeZoneInfo object type Kind 속성 값Kind property value 동작Behavior
TimeZoneInfo.Local DateTimeKind.Local 또는 DateTimeKind.UnspecifiedDateTimeKind.Local or DateTimeKind.Unspecified 모호한 시간을 반환에 대 한 오프셋 dateTime합니다.Returns ambiguous time offsets for dateTime.
TimeZoneInfo.Local DateTimeKind.Utc 변환 dateTime 현지 시간 및 다음 모호한 시간이 해당 시간에 대 한 오프셋을 반환 합니다.Converts dateTime to the local time, and then returns ambiguous time offsets for that time.
TimeZoneInfo.Utc 모든 값Any value. Throw는 ArgumentException합니다.Throws an ArgumentException.
다른 표준 시간대입니다.Any other time zone. Local 또는 DateTimeKind.UtcLocal or DateTimeKind.Utc 변환 dateTime 지정된 된 표준 시간대를 고 당시 모호한 인지 여부를 확인 합니다.Converts dateTime to the specified time zone, and then determines whether that time is ambiguous.
다른 표준 시간대입니다.Any other time zone. DateTimeKind.Unspecified 확인 여부를 dateTime 지정된 된 표준 시간대에서 모호 합니다.Determines whether dateTime is ambiguous in the specified time zone.

순서 TimeSpan 이 메서드에서 반환 된 배열의 개체에에서 정의 되어 있지 않습니다.The order of TimeSpan objects in the array returned by this method is undefined. 하지만 오프셋을 나타내는 요소 시간대의 표준 시간에서 표준 시간대를 사용 하 여 해당 값을 비교 하 여 확인할 수 있습니다 BaseUtcOffset 속성입니다.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. 모호한 시간을 표준 시간대의 표준 시간 으로 매핑하려면 방법: 모호한 시간을 확인 합니다.To map an ambiguous time to a time zone's standard time, see How to: Resolve Ambiguous Times.

추가 정보

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

모호한 날짜 및 시간을 매핑할 수 있는 가능한 날짜 및 시간에 대한 정보를 반환합니다.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[]

매개 변수

dateTimeOffset
DateTimeOffset DateTimeOffset DateTimeOffset

날짜와 시간입니다.A date and time.

반환

특정 날짜 및 시간이 매핑될 수 있는 가능한 UTC(협정 세계시) 오프셋을 나타내는 개체의 배열입니다.An array of objects that represents possible Coordinated Universal Time (UTC) offsets that a particular date and time can be mapped to.

예외

dateTimeOffset이 모호한 시간이 아닌 경우dateTimeOffset is not an ambiguous time.

설명

이 메서드의 정확한 동작은 간의 관계에 따라 달라 집니다 합니다 Offset 의 속성을 dateTimeOffset 매개 변수 및 TimeZoneInfo 개체입니다.The precise behavior of this method depends on the relationship between the Offset property of the dateTimeOffset parameter and the TimeZoneInfo object. 경우 값은 Offset 속성은 현재 표준 시간대의 가능한 오프셋에 대 한 utc (협정 세계시)에서 날짜 및 시간으로 메서드가 반환 가능한 오프셋입니다.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. 그렇지 않으면 변환 dateTimeOffset 에서 현재 표준 시간대, 반환 된 가능한 오프셋에 날짜 및 시간입니다.Otherwise, it converts dateTimeOffset to the time in the current time zone, and then returns the possible offsets of that date and time.

순서 TimeSpan 이 메서드에서 반환 된 배열의 개체에에서 정의 되어 있지 않습니다.The order of TimeSpan objects in the array returned by this method is undefined. 하지만 오프셋을 나타내는 요소 시간대의 표준 시간에서 표준 시간대를 사용 하 여 해당 값을 비교 하 여 확인할 수 있습니다 BaseUtcOffset 속성입니다.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. 모호한 시간을 표준 시간대의 표준 시간 으로 매핑하려면 방법: 모호한 시간을 확인 합니다.To map an ambiguous time to a time zone's standard time, see How to: Resolve Ambiguous Times.

추가 정보

적용 대상