Я пытаюсь найти часовой пояс и вернуть время при использовании DaylightSavingTime?Как найти часовой пояс и время возврата с помощью DaylightSavingTime?
CurrentY я могу:
- найти от часового пояса
- прибудет UTC Offset
- вычислить местное время на основе этого
- определить, если временная зона использует DaylightSavingTime
- получить правила для DaylightSavingTime
- определить, использует ли текущее время DaylightSavingTime
Однако у меня возникают проблемы, применяющим правила, вот код:
FYI
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}
Это должно быть {2010/07/10 9:20:40 AM}
Это 1 час по некоторым причинам.
Похожие темы: http://stackoverflow.com/questions/2532729/daylight-saving-time-and-timezone-best-practices – Oded