代码之家  ›  专栏  ›  技术社区  ›  Paul

C#UTC到用户本地时间

  •  5
  • Paul  · 技术社区  · 15 年前

    我有一个用户可以发帖的网站。用户可以来自全球各地,因此当他们发布时,我将发布日期存储为DateTime.UtcNow。我正在使用JQuery time ago插件来显示发布的数据,类似于堆栈溢出(1分钟前等等),但我不确定如何将存储在系统中的日期转换为用户的本地时间?以下是我正在使用的:

    public static MvcHtmlString ConvertToLocalTime(this HtmlHelper htmlHelper, DateTime date)
        {
            DateTime convertedDate = DateTime.SpecifyKind(DateTime.Parse(date.ToString()),DateTimeKind.Utc);
            return MvcHtmlString.Create(convertedDate.ToLocalTime().ToString());
        }
    

    这可以将时间转换为服务器的本地时间,但我需要用户的本地时间。我做错什么了?我正在使用.NET MVC 2和.NET 4.0

    2 回复  |  直到 15 年前
        1
  •  10
  •   Greg Hewgill    15 年前

    一般来说,您不会知道用户在服务器端的确切时区。不要试图在服务器端转换为用户的本地时间,而是用UTC将时间发送给客户端,并让客户端转换时间。TimeAgo插件会自动执行此操作,只要您以完整的ISO8601格式给出时间:

    <abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>
    

    这个 Z

        2
  •  0
  •   Community Mohan Dere    9 年前

    您有当前用户的区域性吗?如果是这样的话,你可以使用 C# - Convert UTC/GMT time to local time