如何识别用户的时区

时间:2018-03-07 11:25:17

标签: asp.net-mvc browser timezone

我需要根据用户时区获取用户时区并显示日期时间。 如果用户保存一些数据,日志将保存在数据库中,用户可以看到日志,但我需要根据用户登录的位置显示日期时间。

1 个答案:

答案 0 :(得分:1)

实现此目的的常用方案是以UTC格式存储所有日期,然后在客户端代码中转换为本地时区(javacsript / jquery /您想要使用的其他任何javascript框架)。

一个简单的控制器动作,演示了保存utc日期:

[HttpPost]
public ActionResult SaveDate()
{
  try
  {
    _dateRepository.Save(DateTime.UtcNow);

    return Index(date);
  }
  catch (Exception ex)
  {
    _log.Error(ex.Message, ex);
  }
}

然后在加载要显示数据的页面时,您可以使用脚本将时间转换为详细here的本地时区:

var localDateTime = utcDateTime.ToString();

然后,您将向用户显示javascript转换的数据。这允许您以统一格式保存所有日期,而不必担心跟踪时区信息。