C#UTC到用户本地时间

我有一个用户可以发帖的网站。 用户可以来自全球各地,因此当他们发布时,我将发布的日期存储为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()); } 

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

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

 July 17, 2008 

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

您是否拥有当前用户的文化? 如果是这样,您可以使用C#中的代码转换为他们的时区- 将UTC / GMT时间转换为当地时间