public void ToClientTimeString() { HttpManager.CurrentContext.RemoveData(LocaleUtils.TimeZoneKey); Assert.IsTrue(LocaleUtils.SetThreadTimezone("Asia/Shanghai")); var time = new DateTime(2000, 1, 2, 13, 14, 50, DateTimeKind.Utc); var timeString = time.ToClientTimeString(); Assert.Equals(timeString, "2000/01/02 21:14:50"); }
public void FromClientTime() { HttpManager.CurrentContext.RemoveData(LocaleUtils.TimeZoneKey); var time = new DateTime(2000, 1, 1, 8, 0, 0, DateTimeKind.Local); Assert.Equals(time.FromClientTime(), time.ToUniversalTime()); Assert.IsTrue(LocaleUtils.SetThreadTimezone("Asia/Shanghai")); var utcTime = time.FromClientTime(); Assert.Equals(utcTime, new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc)); Assert.IsTrue(LocaleUtils.SetThreadTimezone("Etc/GMT")); utcTime = time.FromClientTime(); Assert.Equals(utcTime, new DateTime(2000, 1, 1, 8, 0, 0, DateTimeKind.Utc)); }
public void ToClientTime() { HttpManager.CurrentContext.RemoveData(LocaleUtils.TimeZoneKey); var time = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc); Assert.Equals(time.ToClientTime(), time.ToLocalTime()); Assert.IsTrue(LocaleUtils.SetThreadTimezone("China Standard Time")); var localTime = time.ToClientTime(); Assert.Equals(localTime, new DateTime(2000, 1, 1, 8, 0, 0, DateTimeKind.Local)); Assert.IsTrue(LocaleUtils.SetThreadTimezone("GMT Standard Time")); localTime = time.ToClientTime(); Assert.Equals(localTime, new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Local)); }
public void SetThreadTimezone() { Assert.IsTrue(LocaleUtils.SetThreadTimezone("China Standard Time")); var time = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc); var localTime = time.ToClientTime(); Assert.Equals(localTime, new DateTime(2000, 1, 1, 8, 0, 0, DateTimeKind.Local)); Assert.IsTrue(LocaleUtils.SetThreadTimezone("GMT Standard Time")); localTime = time.ToClientTime(); Assert.Equals(localTime, new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Local)); Assert.IsTrue(!LocaleUtils.SetThreadTimezone(null)); Assert.IsTrue(!LocaleUtils.SetThreadTimezone("NotExist")); localTime = time.ToClientTime(); Assert.Equals(localTime, new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Local)); }
/// <summary> /// 根据传入的Http头设置语言和时区 /// </summary> public void OnRequest() { var request = HttpManager.CurrentContext.Request; var language = request.GetHeader(LanguageHeader); var timezone = request.GetHeader(TimezoneHeader); if (!string.IsNullOrEmpty(language)) { LocaleUtils.SetThreadLanguage(language); } if (!string.IsNullOrEmpty(timezone)) { LocaleUtils.SetThreadTimezone(timezone); } }