C#提供了一种通过DateTime.Now
获取当前日期的方法。但问题是我的服务器在美国,当我使用DateTime.Now
有没有办法在C#中获取特定国家/地区的当前时间,因为我的用户来自世界各地? (我有每个用户的语言环境,所以如果我能获得每个语言环境的当前时间,那么我很安全)
我已经看到using Time Zone的方式,但我必须保留时区与国家/地区的参考。
我已经搜索过了,这里的大部分问题都是关于将UTC时间转换为本地时间,反之亦然。希望有人能够启发我。
答案 0 :(得分:5)
使用UTC时间(DateTime.UtcNow)
在您的服务器中节省您的时间,然后根据用户时区,您将更改此时间。永远不要在db中保存当地时间
答案 1 :(得分:3)
看看TimeZoneInfo课程。您应该可以在此处转换为从本地到服务器的时间,同时保持DST(夏令时)。
DateTimeOffset newTime = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, TimeZoneInfo.FindSystemTimeZoneById("AppTimeZone"));
您还可以通过Great Jon Skeet Noda Time之一找到开源时区实施