【发布时间】:2018-08-15 11:40:38
【问题描述】:
我需要获取用户时区并根据用户时区显示日期时间。 如果用户保存一些数据,日志将保存在数据库中,用户可以看到日志,但我需要根据用户登录的位置显示日期时间。
【问题讨论】:
标签: asp.net-mvc browser timezone
我需要获取用户时区并根据用户时区显示日期时间。 如果用户保存一些数据,日志将保存在数据库中,用户可以看到日志,但我需要根据用户登录的位置显示日期时间。
【问题讨论】:
标签: asp.net-mvc browser timezone
实现此目的的常用方案是将所有日期存储在 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 转换的数据。这使您可以以统一的格式保存所有日期,而不必担心跟踪时区信息。
【讨论】: