일광 절약 시간제가 적용된 시간대 및 반환 시간을 찾으려고합니다.어떻게 일광 절약 시간제가 적용된 시간대 및 반환 시간을 찾으십니까?
Currenty 나는 할 수 있습니다
- 가져 오기 UTC 결정 시간대 DaylightSavingTime를 사용하는 경우
- 그
- 에 따라 현지 시간을 계산 오프셋
- 시간대를 찾을 수
- 규칙을 얻을 DaylightSavingTime에 대해
- 현재 시간이 DaylightSavingTime을 사용하는지 확인 이다의 참고하시기 바랍니다
System.DateTime.Now.ToUniversalTime().Add(timeDiffUtcClient)
반환 = 2010/07/10 09:25:45 AM
DateTime localDate = System.DateTime.Now.ToUniversalTime();
// Get the venue time zone info
TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
TimeSpan timeDiffUtcClient = tz.BaseUtcOffset;
localDate = System.DateTime.Now.ToUniversalTime().Add(timeDiffUtcClient);
if (tz.SupportsDaylightSavingTime && tz.IsDaylightSavingTime(localDate))
{
localDate = localDate.Subtract(tz.GetAdjustmentRules().Single(r => localDate >= r.DateStart && localDate <= r.DateEnd).DaylightDelta);
}
DateTimeOffset utcDate = localDate.ToUniversalTime();
return localDate;
최종 값 LOCALDATE : 나는 규칙을 적용하는 데 문제가 있어요 그러나
, 여기에 코드입니다 {2010/07/10 08:20:40 AM}
그것은 해야 {2010/07/10 오전 9시 20분 40초}
이 1 시간은 어떤 이유로 꺼져합니다.
public static DateTime GetLocalTime(string TimeZoneName)
{
DateTime localDate = System.DateTime.Now.ToUniversalTime();
// Get the venue time zone info
TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById(TimeZoneName);
TimeSpan timeDiffUtcClient = tz.BaseUtcOffset;
localDate = System.DateTime.Now.ToUniversalTime().Add(timeDiffUtcClient);
//DateTimeOffset localDate = new DateTimeOffset(venueTime, tz.BaseUtcOffset);
if (tz.SupportsDaylightSavingTime && tz.IsDaylightSavingTime(localDate))
{
TimeZoneInfo.AdjustmentRule[] rules = tz.GetAdjustmentRules();
foreach (var adjustmentRule in rules)
{
if (adjustmentRule.DateStart <= localDate && adjustmentRule.DateEnd >= localDate)
{
localDate = localDate.Add(adjustmentRule.DaylightDelta);
}
}
//localDate = localDate.Subtract(tz.GetAdjustmentRules().Single(r => localDate >= r.DateStart && localDate <= r.DateEnd).DaylightDelta);
}
DateTimeOffset utcDate = localDate.ToUniversalTime();
return localDate;
}
당신이 할 수있는 테스트하려면 :
관련 게시물 : : http://stackoverflow.com/questions/2532729/daylight-saving-time-and-timezone-best-practices 전체 기능에 의해 대체 될 수 없습니다 – Oded