开发者

C# UTC to Users Local Time

开发者 https://www.devze.com 2023-01-23 02:11 出处:网络
I have a site where users can make posts. The users can be from all over the开发者_开发知识库 globe so when they post, I am storing the posted date as DateTime.UtcNow. I am using the JQuery time ago p

I have a site where users can make posts. The users can be from all over the开发者_开发知识库 globe so when they post, I am storing the posted date as DateTime.UtcNow. I am using the JQuery time ago plug in to show the posted dat similar to stack overflow (1 min ago etc...) But I am not sure how to convert to date I have stored in the system to the users local time? Here is what I am using:

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());
    }

This sees to convert the time to the servers local time but I need it for the users local time. What am I doing wrong? I am using .NET MVC 2 and .NET 4.0


In general, you aren't going to know the user's exact time zone on the server side. Instead of trying to convert to the user's local time on the server side, send the time to the client in UTC and have the client convert the time. The TimeAgo plugin does this automatically as long as you give it the time in full ISO8601 format:

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

The Z at the end of the timestamp is important; that means UTC.


Do you have the culture for the current user? If so you could convert to their timezone using code from C# - Convert UTC/GMT time to local time

0

精彩评论

暂无评论...
验证码 换一张
取 消