例如,服务器时间是晚上11点。
在应用内指定的用户时区为US Mountain Standard Time
。
所以我需要下午4点,用户时间。
尝试
var UserTimeZoneInfo = "US Mountain Standard Time";
var userTime =TimeZoneInfo.ConvertTimeToUtc(now, _UserTimeZoneInfo);
和这个
var userTime = new DateTimeOffset(now, this._UserTimeZoneInfo.BaseUtcOffset);
但在这两种情况下,我都是早上8点而不是下午4点。 TimeZone差异被添加到服务器时间,而不是减去。我看到还有其他DateTime函数,但不确定使用哪一个?
答案 0 :(得分:0)
如果您希望从UTC更改指定的时区时间,则需要使用ConvertTimeFromUtc方法。
var timeZone = TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time");
DateTime arizonaTime = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(2017, 11, 9, 23, 0, 0,DateTimeKind.Utc), timeZone);
答案 1 :(得分:0)
您可以使用ConvertTime将时间转换为特定时区的时间。
DateTime currentDt = DateTime.Now;
var timeZone = TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time");
var userTime = TimeZoneInfo.ConvertTime(currentDt, timeZone);