Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#UTC至用户当地时间_C#_Asp.net_Asp.net Mvc 2_.net 4.0 - Fatal编程技术网

C#UTC至用户当地时间

C#UTC至用户当地时间,c#,asp.net,asp.net-mvc-2,.net-4.0,C#,Asp.net,Asp.net Mvc 2,.net 4.0,我有一个网站,用户可以发表文章。用户可以来自全球各地,因此当他们发布时,我将发布的日期存储为DateTime.UtcNow。我使用JQuery time ago插件显示发布的dat,类似于堆栈溢出(1分钟前等),但我不确定如何将系统中存储的日期转换为用户本地时间?以下是我正在使用的: public static MvcHtmlString ConvertToLocalTime(this HtmlHelper htmlHelper, DateTime date) { Dat

我有一个网站,用户可以发表文章。用户可以来自全球各地,因此当他们发布时,我将发布的日期存储为DateTime.UtcNow。我使用JQuery time ago插件显示发布的dat,类似于堆栈溢出(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。您有适合当前用户的区域性吗?如果是这样的话,您通常可以使用

中的代码转换到他们的时区,那么在服务器端您将不知道用户的确切时区。不要试图在服务器端转换为用户的本地时间,而是将时间以UTC格式发送给客户端,并让客户端转换时间。TimeAgo插件会自动执行此操作,只要您以完整的ISO8601格式为其提供时间:

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

时间戳末尾的
Z
很重要;这意味着UTC。

感谢您的帮助!我正在使用AJAX发布文章,我想知道TimeAgo是否与.Live一起工作?有趣的事实-结尾的Z是它的通用名称“祖鲁时间”: