当前位置: 首页 > 编程语言 > C#

在我的数据库中存储时区信息的最佳方式是什么?Share

时间:2023-04-10 17:42:54 C#

在我的数据库中存储时区信息的最佳方式是什么?我有一个asp.net-mvc站点,我接管了一个页面,人们可以在其中输入信息和时间(包括本地时区)。数据库保留开始时间、结束时间和时区,因为我觉得它有点不稳定。下面是获取列表的代码:staticprivateIEnumerableGetTimeZones(stringselected){vartimeZoneNames=TimeZoneInfo.GetSystemTimeZones().Where(tz=>tz.DisplayName.Contains("London")||tz.DisplayName.Contains("香港")||tz.DisplayName.Contains("孟买")||tz.DisplayName.Contains("东部时间")).ConvertAll(tz=>tz.DisplayName).ToList();varitems=new列表();foreach(timeZoneNames中的var项目){varslItem=newSelectListItem();slItem.Text=项目;slItem.Value=项目;slItem.Selected=item==selected;项目。添加(slItem);}退换货品;所以它只是存储从TimeZoneInfo.GetSystemTimeZones()返回的完整字符串这种方法有什么缺陷吗?如果不同的机器有不同的设置,我有点担心在这里阅读这是来自本地机器。此外,试图弄清楚是否所有内容都列为UTC或GMT等。有更好的建议吗?例如,我应该在网站上转换为UTC并在数据库中对所有时间进行规范化吗?您应该存储TimeZoneInfo.Id返回的ID。这是标识符-用于标识时区的字符串。使用显示名称是一个非常糟糕的主意,因为它可能因文化而异并且不太可能稳定。然后,您可以使用TimeZoneInfo.FindSystemTimeZoneById从ID中检索区域。诚然,我更喜欢TZDB进行时区处理,但那是另一回事:)以上是C#学习教程:在我的数据库中存储时区信息的最佳方式是什么?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: