Exemplo n.º 1
0
        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");
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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);
            }
        }