TimeZone.ToLocalTime(DateTime) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 날짜 및 시간 값에 해당하는 현지 시간을 반환합니다.
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
적용 대상
추가 정보
.NET