在我的网站中,我需要在不依赖Javascript的情况下跟踪用户的本地日期/时间。我有一个表格,其中存储了每个用户在GMT中的时区偏移量。因此,对于用户X,时区偏移可以存储为-5。
要获取用户当前的本地日期和时间,我使用以下代码
int timeOffsetGMT = -5;
DateTime localTime = DateTime.UtcNow.AddHours(timeOffsetGMT);
以上代码片段有效,但不考虑夏令时。关于我如何将夏令时纳入计算的任何想法?
答案 0 :(得分:0)
int timeOffsetGMT = -5;
DateTime localTime = DateTime.UtcNow.AddHours(timeOffsetGMT);
if(TimeZoneInfo.Local.IsDaylightSavingTime(localTime))
localTime = localTime.AddHours(1);
要直接设置TimeZoneInfo
,如果您的服务器不在“东部标准时间”区域(GMT-5),请使用以下命令:
var zone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
int timeOffsetGMT = -5;
DateTime localTime = DateTime.UtcNow.AddHours(timeOffsetGMT);
if(zone.IsDaylightSavingTime(localTime))
localTime = localTime.AddHours(1);