我正在使用asp.net mvc,我正在使用此网站上的方法.
所以这就是我在做的事情.然后,我将结果显示给用户.用户选择他们的时区,我将显示名称保存在数据库中.
但是我现在正在尝试实际进行时区转换.
我试图这样做(我不确定这是否是正确的方法).
TimeZoneInfo zoneInfo = TimeZoneInfo.FindSystemTimeZoneById(id);
var time = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now, zoneInfo);
Run Code Online (Sandbox Code Playgroud)
所以我认为这是正确的,它获取系统时间和用户时区,并使用此信息将其转换为本地UTC时间.
所以假设我做得很好(如果不是请纠正我),我面临的问题是如何获得ID?
我不知道如何找到id.就像我愿意在数据库中保存ID而不是DisplayName,但我不知道如何从DisplayName中找出ID.
谢谢
也许在启动时将它们缓存在字典中:
static readonly Dictionary<string, TimeZoneInfo> zones
= TimeZoneInfo.GetSystemTimeZones().ToDictionary(z => z.DisplayName);
Run Code Online (Sandbox Code Playgroud)
然后获取zones[displayName](或通过,zones.TryGetValue(displayName, out zone)如果你想要安全).
| 归档时间: |
|
| 查看次数: |
2456 次 |
| 最近记录: |