정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

DateTimeOffset.ToOffset 메서드

2013-12-13

현재 DateTimeOffset 개체의 값을 오프셋 값으로 지정된 날짜와 시간으로 변환합니다.

Namespace:  System
어셈블리:  mscorlib(mscorlib.dll)

public DateTimeOffset ToOffset(
	TimeSpan offset
)

매개 변수

offset
형식: System.TimeSpan
DateTimeOffset 값을 변환할 대상 오프셋입니다.

반환 값

형식: System.DateTimeOffset
원래 DateTimeOffset 개체와 같지만, 즉 해당 ToUniversalTime 메서드가 동일한 시각을 반환하지만, Offset 속성이 offset으로 설정되어 있는 개체입니다.

예외조건
ArgumentException

결과 DateTimeOffset 개체의 DateTime 값이 MinValue보다 이전인 경우

-또는-

결과 DateTimeOffset 개체의 DateTime 값이 MaxValue보다 나중인 경우

ArgumentOutOfRangeException

offset이 -14시간보다 작은 경우

-또는-

offset이 14시간보다 큰 경우

ToOffset 메서드는 TimeZoneInfo.ConvertTime(DateTimeOffset, TimeZoneInfo) 메서드를 호출하는 대신 사용할 수 있습니다. 이 메서드는 UTC(협정 세계시)를 기준으로 한 시간대의 오프셋을 알고 있을 때 한 시간대에서 다른 시간대로 간단한 변환을 수행하기에 유용합니다. 그러나 원래 DateTimeOffset 개체나 메서드를 호출하여 반환되는 새 DateTimeOffset 개체 모두 특정 시간대에 명확하게 연결되지 않으므로 이 메서드는 변환 시 어떠한 시간대 조정 규칙도 적용하지 않습니다.

다음 예제에서는 ToOffset 메서드를 사용하여 DateTimeOffset 개체를 오프셋이 다른 DateTimeOffset 개체로 변환하는 방법을 보여 줍니다.


using System;

public class Example
{
   private static DateTimeOffset sourceTime;

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      DateTimeOffset targetTime;
      sourceTime = new DateTimeOffset(2007, 9, 1, 9, 30, 0,
                                      new TimeSpan(-5, 0, 0));

      // Convert to same time (return sourceTime unchanged)
      targetTime = sourceTime.ToOffset(new TimeSpan(-5, 0, 0));
      ShowDateAndTimeInfo(outputBlock, targetTime);

      // Convert to UTC (0 offset)
      targetTime = sourceTime.ToOffset(TimeSpan.Zero);
      ShowDateAndTimeInfo(outputBlock, targetTime);

      // Convert to 8 hours behind UTC
      targetTime = sourceTime.ToOffset(new TimeSpan(-8, 0, 0));
      ShowDateAndTimeInfo(outputBlock, targetTime);

      // Convert to 3 hours ahead of UTC
      targetTime = sourceTime.ToOffset(new TimeSpan(3, 0, 0));
      ShowDateAndTimeInfo(outputBlock, targetTime);
   }

   private static void ShowDateAndTimeInfo(System.Windows.Controls.TextBlock outputBlock, DateTimeOffset newTime)
   {
      outputBlock.Text += String.Format("{0} converts to {1}", sourceTime, newTime) + "\n";
      outputBlock.Text += String.Format("{0} and {1} are equal: {2}",
                        sourceTime, newTime, sourceTime.Equals(newTime)) + "\n";
      outputBlock.Text += String.Format("{0} and {1} are identical: {2}",
                        sourceTime, newTime,
                        sourceTime.EqualsExact(newTime)) + "\n";
      outputBlock.Text += "\n";
   }
}
//
// The example displays the following output:
//    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 9:30:00 AM -05:00
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 9:30:00 AM -05:00 are equal: True
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 9:30:00 AM -05:00 are identical: True
//    
//    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 2:30:00 PM +00:00
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 2:30:00 PM +00:00 are equal: True
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 2:30:00 PM +00:00 are identical: False
//    
//    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 6:30:00 AM -08:00
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 6:30:00 AM -08:00 are equal: True
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 6:30:00 AM -08:00 are identical: False
//    
//    9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 5:30:00 PM +03:00
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 5:30:00 PM +03:00 are equal: True
//    9/1/2007 9:30:00 AM -05:00 and 9/1/2007 5:30:00 PM +03:00 are identical: False


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시: