C#UTC到用户本地时间

Pau*_*aul 5 c# asp.net .net-4.0 asp.net-mvc-2

我有一个用户可以发帖的网站.用户可以来自全球各地,所以当他们发布时,我将发布的日期存储为DateTime.UtcNow.我正在使用JQuery时间插件显示发布的数据类似于堆栈溢出(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());
    }
Run Code Online (Sandbox Code Playgroud)

这看到将时间转换为服务器本地时间,但我需要它为用户本地时间.我究竟做错了什么?我正在使用.NET MVC 2和.NET 4.0

Gre*_*ill 10

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

<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>
Run Code Online (Sandbox Code Playgroud)

Z在时间戳的结束是很重要的; 这意味着UTC.

  • 有趣的事实 - 最后的Z是它的通用名称,"祖鲁时间":) (8认同)