2009-10-06 9 views
0

사용자는 ASP.NET 프로필에 문자열로 저장된 시간대가 있습니다.ASP.NET : 프로필의 시간대를 사용하여 UTC에서 변환하는 데 문제가 있습니다.

: TimeZoneInfo.FromSerializedString()가 에 입력과 같은 단순한 문자열이 될 수 없습니다 기대하는

Dim timezoneFromProfile = HttpContext.Profile("TZ").ToString 
Dim timezone = TimeZoneInfo.FromSerializedString(timeZoneFromProfile) ' FAIL 
Dim convertedTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, timezone) 

문제는 : 나는 특정 사용자에 대한 UTC로 변환하는 그 시간대를 사용하려면

(UTC-08 : 00) 태평양 표준시 (미국 & 캐나다) 나는 ASP.NET 프로필에 사용자의 TimeZoneInfo 중 직렬화 할 수

아마도 XML을 사용하여,하지만 난 하나를 사용하여 믿게 해요 Strings 및 Integers와 같은 단순한 유형 이외의 것은 프로파일과 관련하여 성능이 떨어집니다.

앞으로 나아가는 가장 좋은 방법은 무엇입니까?

답변

1

당신은 "ID"에서 시간대를로드 할 수

TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); 

GetSystemTimeZones 당신에게 ID의 목록을 제공합니다. 참고 : 이들은 프레임 워크 3.5 방법입니다.

+0

나는 그걸 알아 냈고 내 자신의 질문에 대답하기 위해 다시 로그온했지만, 당신은 나를 때렸다! 당신이 지적한대로, 트릭은 ProfileName을 DisplayName이 아닌 Id로 저장하는 것입니다. 감사. – royco

관련 문제