C# and Current Local time for different countries

做~自己de王妃 提交于 2019-12-12 08:41:30

问题


C# offers a way to get the current date by DateTime.Now. But the problem is my server is on US and I get the US time when I use DateTime.Now

Is there any way to get the current local time for a specific country in C# as my users are from around the world? (I have locale of each user, so if I Can get the current time for each locale then I’m safe)

I've seen a way using Time Zone but then I have to keep time zone vs country reference.

I’ve searched and most of the question here is about converting UTC time to local time and vice versa. Hope someone would be able to enlighten me.


回答1:


Save your time in your server using UTC time (DateTime.UtcNow) and then depending on the users time zone you will change this utc time. Never save local time in the db




回答2:


Just look at the TimeZoneInfo class. You should be able to convert to and from local to server time through there while maintaining DST (Daylight Savings time).

DateTimeOffset newTime = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, TimeZoneInfo.FindSystemTimeZoneById("AppTimeZone"));

You can also find an Open Source Time Zone Implementation by one of the Great Jon Skeet Noda Time



来源:https://stackoverflow.com/questions/14251553/c-sharp-and-current-local-time-for-different-countries

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!