A DateTime에 표준 시간대 정보가 저장되지 않습니다. According to the documentation, TimeZoneInfo.ConvertTime
시간 변환 방법을 결정하기 위해 DateTime.Kind 속성을 사용합니다 :
- DateTimeKind.Local 및 DateTimeKind.Unspecified는 : destinationTimeZone의 시간을 현지 시간으로 변환합니다.
- DateTimeKind.Utc : UTC (Coordinated Universal Time)를 destinationTimeZone의 시간으로 변환합니다. 당신은 (대상 시간대를 지정하는) 두 번째 매개 변수에 대한
TimeZoneInfo.Local
를 사용하고 있기 때문에
, 나는 당신이 DateTimeKind가 로컬 또는 지정되지 않은 중 하나입니다있어 있으리라 믿고있어. 따라서 현지 날짜를 현지 날짜로 변환하는 것이므로 분명히 작동하지 않습니다.
DateTime.ToLocalTime
도 DateTimeKind를 사용합니다. According to the documentation:
- Utc :이 DateTime 인스턴스는 현지 시간으로 변환됩니다.
- 로컬 : 변환이 수행되지 않습니다.
- 지정되지 않음 : DateTime의이 인스턴스는 UTC 시간으로 간주되며 Kind가 Utc 인 것처럼 변환됩니다. 기본적으로
, TimeZoneInfo.ConvertTime
이 DateTimeKind.Unspecified = 지역이, DateTime.ToLocalTime
그 DateTimeKind.Unspecified = UTC을 고려 것을 고려하면서. 후자가 작동하지 않는 이유는 후자가 왜 작동 하는지를 설명합니다.
시도해보십시오. progress.ActionDateTime.ToLocalTime(); – Mahantesh
그게 작동하는 것, 난 그냥 ConvertTime 함수를 제대로 사용하지 않거나 작동하지 않는 경우 궁금합니다. – Paul