웹 응용 프로그램이 .Net 3.5에서 실행되면 모든 날짜가 사용자 시간이 아닌 UTC 시간에 DB에 저장됩니다. 내가 날짜를 표시 할 때TimeZoneInfo.ConvertTime 문제 : 일광 절약 시간제 스위치가 누락되었습니다
가 나는 괜찮 았는데 지금까지 (UTC)에서 사용자 날짜
//Get the current datetime of the user exp: GMT TO ISRAEL +2
public static DateTime GetUserDateTime(DateTime dateUTC)
{
string userTzId = "Israel Standard Time";
TimeZoneInfo userTZ = TimeZoneInfo.FindSystemTimeZoneById(userTzId);
dateUTC = DateTime.SpecifyKind(dateUTC, DateTimeKind.Utc);
DateTime ret = TimeZoneInfo.ConvertTime(dateUTC, TimeZoneInfo.Utc, userTZ);
return ret;
}
로 변환하지만 이스라엘의 사용자 (GMT +2)를 가지고 있고, 이스라엘은 일광로 전환 26/3/10에 시간을 절약하므로 이제 (GMT +3)입니다.
어떤 이유로 TimeZoneInfo.ConvertTime은 일광 절약 시간제 스위치가 26/3/10에있는 것을 모르기 때문에 GMT +2로 변환됩니다. (창 UTC 시간 2003 설정)가 잘못된 시간 (+2)를 보여줍니다 서버에
DateTime userdate = GetUserDateTime(DateTime.UtcNow);
string str2 = "UserDateTime = " + userdate.ToString("dd/MM/yy") + " " + userdate.ToString("HH:mm");
:
이상한 것은이 로컬 호스트에서 잘 작동한다는 것입니다, 나는 테스트 페이지를 설정 :
UserDateTime = 27/03/10 올바른 시간 (3)를 보여줍니다 로컬 호스트 (이스라엘 시간으로 설정 윈도우 XP)에 21시 38분
:
UserDateTime = 27/03/10 (22) : 38
이스라엘의 일광 절약 시간제 스위치가 26/3/10에 있었던 TimeZoneInfo를 어떻게 업데이트 할 수 있습니까?
감사합니다.
더 이상 같은 문제가있는 국가가 있습니까? – SirMoreno
음, 항상 어딘가에 문제가 있습니다. DST 시간은 정치적 결정이며 태양 주위의 지구 운동에 영향을받지 않습니다. –