다음을 통해 공유


TimeZone.ToLocalTime(DateTime) 메서드

정의

지정된 날짜 및 시간 값에 해당하는 현지 시간을 반환합니다.

public:
 virtual DateTime ToLocalTime(DateTime time);
public virtual DateTime ToLocalTime (DateTime time);
abstract member ToLocalTime : DateTime -> DateTime
override this.ToLocalTime : DateTime -> DateTime
Public Overridable Function ToLocalTime (time As DateTime) As DateTime

매개 변수

time
DateTime

UTC(협정 세계시) 시간입니다.

반환

time에 해당하는 현지 시간을 값으로 가지는 DateTime 개체입니다.

설명

다음 표에서는 매개 변수와 이 메서드에서 time 반환된 DateTime 값 간의 관계를 보여 줍니다.

time 매개 변수 동작 반환 값
UTC(협정 세계시) 시간(DateTimeKind.Utc)입니다. 시간을 UTC에서 현지 시간으로 변환합니다. time에 해당하는 현지 시간을 값으로 가지는 DateTime 개체입니다.
현지 시간(DateTimeKind.Local). 변환이 필요하지 않습니다. 매개 변수가 나타내는 것과 동일한 DateTime 값입니다 time .
지정되지 않은 시간(DateTimeKind.Unspecified)입니다. 시간이 UTC라고 가정하고 UTC에서 현지 시간으로 변환합니다. time에 해당하는 현지 시간을 값으로 가지는 DateTime 개체입니다.

현지 표준 시간대가 일광 절약 시간을 ToLocalTime 관찰하는 경우 변환을 수행할 때 현재 조정 규칙을 에 time 적용합니다.

참고

메서드는 ToLocalTime 로컬 표준 시간대에 대한 현재 일광 절약 시간 조정 규칙만 인식합니다. 따라서 최신 조정 규칙이 적용되는 기간 동안에만 특정 UTC 시간에 해당하는 현지 시간을 정확하게 반환하도록 보장됩니다. 가 이전 조정 규칙의 적용을 받는 기록 날짜 및 시간 값인 경우 time 부정확한 결과를 반환할 수 있습니다.

메서드는 ToLocalTime 매개 변수가 TimeZoneInfo.ConvertTimeFromUtc 로 설정된 메서드에 destinationTimeZone 해당합니다 TimeZoneInfo.Local. 가능하면 메서드를 TimeZoneInfo.ConvertTimeFromUtc 사용합니다.

상속자 참고

필수는 아니지만 대부분의 경우 .NET Framework 버전 2.0에서 실행되는 파생 클래스는 이 메서드의 기본 구현을 재정의해야 합니다. .NET Framework 버전 1.0 및 1.1 ToLocalTime 에서 메서드는 메서드를 GetUtcOffset(DateTime) 호출하고 현지 시간을 반환할 때 일광 절약 시간제에 맞게 조정되었습니다. 그러나 .NET Framework 2.0부터 기본 구현의 동작은 매개 변수의 time 속성에 Kind 따라 달라집니다. 값이 이면 이 메서드는 Local변경되지 않은 값을 반환합니다 time . 값이 또는 Unspecified이면 이 메서드는 Utc UTC라고 가정 time 하고 메서드를 호출 GetUtcOffset(DateTime) 하지 않고 로컬 시스템 시간으로 변환합니다.

다음 코드는 메서드의 기본 구현에 대한 간단한 재정의를 ToLocalTime 제공합니다. 이 코드에서 변수는 internalTimeZone 클래스의 프라이빗 인스턴스를 TimeZone 나타냅니다.

public override DateTime ToLocalTime(DateTime time)
{
   if (time.Kind == DateTimeKind.Local)
   {
      return time;
   }
   else if (time.Kind == DateTimeKind.Utc)
   {
      DateTime returnTime = new DateTime(time.Ticks, DateTimeKind.Local);
      returnTime += this.GetUtcOffset(returnTime);
      if (internalTimeZone.IsDaylightSavingTime(returnTime))
         returnTime -= new TimeSpan(1, 0, 0);
      return returnTime;
   }      
   else
   {
      throw new ArgumentException("The source time zone cannot be determined.");
   }      
}
Public Overrides Function ToLocalTime(time As Date) As Date
   If time.Kind = DateTimeKind.Local Then
      Return time
   ElseIf time.Kind = DateTimeKind.Utc Then
      Dim returnTime As New Date(time.Ticks, DateTimeKind.Local)
      returnTime += me.GetUtcOffset(returnTime)
      if internalTimeZone.IsDaylightSavingTime(returnTime) Then
         returnTime -= New TimeSpan(1, 0, 0)
      End If
      Return returnTime      
   Else
      Throw New ArgumentException("The source time zone cannot be determined.")
   End If      
End Function

적용 대상

추가 정보