2009-08-10 1 views
3

GMT 표준 시간대 형식의 날짜 시간을 Eastern, Pacific, Mountain 및 India와 같은 다른 형식으로 변환하는 방법을 알아야합니다. C#, asp.net2.0 및 닷 넷 프레임 작업 2.0의 표준 시간대 형식.GMT에서 기타 (Eastern, Mountain, Pacific, Indian, ..) 형식으로 변환

감사의 말

루파.

+0

에 대한 그것의 여기를 보라 http://stackoverflow.com/questions/1108644/c-making-sure-datetime-now-returns-a-gmt-1-time/1108670# 1108670 – ThePower

답변

1
정말

,이에 대한 .NET 3.5 싶어 ...

(나는 당신에 대해 .NET 2.0을 요청 알고 있지만이를 저장할 것 대답은 미래에이 주제를 검색하는 누군가에게 도움이 될 것입니다.)

TimeZoneInfo mountain = TimeZoneInfo.FindSystemTimeZoneById(
    "US Mountain Standard Time"); 
DateTime utc = DateTime.UtcNow; 
DateTime local = TimeZoneInfo.ConvertTimeFromUtc(utc, mountain); 

그 전에 ... 통증. 자신 만의 오프셋 목록을 유지할 수 있지만 DST에 대해 걱정해야합니다.

2

.NET 2.0을 사용하면 불행하게도 대부분 채워집니다. P/Invoke를 사용하여 TimeZone 클래스의 인스턴스를 만들어야합니다. .NET 3.5 이후부터는 훨씬 더 좋았습니다. TimeZoneInfo을 사용하면 비 로컬 영역을 가져올 수 있습니다. 나는 후자가 DST가 변경 될 때를 대비 한 한 쌍의 규칙 대신 역사적인 표준 시간대 정보를 더 잘 지원한다는 것을 기억하는 것 같다.

GetTimeZoneInformation을 사용하여 정보를 얻을 수 있지만 비교적 추합니다. P/Invoke를 사용하여 변환 작업을 수행하는 방법이있을 수 있습니다. 그래도 여전히 털이있을 가능성이 있습니다.

.NET 2.0을 사용해야하는 요건은 무엇입니까? 당신은 자신에게 많은 .NET 3.5을 사용하는 번거 로움 ...

0

아래의 방법을 작성하면 쉽게 호출 할 수 있습니다. 인도 표준 시간

public DateTime IndianStandard(DateTime currentDate) 
{ 
    TimeZoneInfo mountain = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"); 
    DateTime utc = currentDate; 
    return TimeZoneInfo.ConvertTimeFromUtc(utc, mountain); 
} 
관련 문제