我们要开始为数据库中的每个地址收集时区。存储时区的最佳实践是什么?您将如何获取现有地址记录的时区?
我正在使用Microsoft SQL Server,.net mvc,C#。任何建议将不胜感激。
我们要开始为数据库中的每个地址收集时区。存储时区的最佳实践是什么?您将如何获取现有地址记录的时区?
我正在使用Microsoft SQL Server,.net mvc,C#。任何建议将不胜感激。
Answers:
您想要存储的东西不会一直(或一年两次)保持不变。时区数据库https://en.wikipedia.org/wiki/List_of_tz_database_time_zones完全正确。因此,您只需存储两个字母。
您可以从该数据库查询时间偏移,以及夏令时处于活动状态时。它不仅是时间偏移,而且还为您提供了一个区域,因此在同一纬度上的许多地方将具有不同的代码,并且可以分别更改其时区规则,并且您的软件将能够处理该时区。
唯一需要更改数据库的时间是位置更改其所属的时区时,这种情况很少见。
假设您使用的是.Net Framework 4.0或更高版本,则需要使用TimeZoneInfo。
将所有日期值以UTC格式存储在数据库中。为每个客户端使用ID值或ToSerializedString()的结果来创建TimeZoneInfo对象,以将存储的日期转换为本地格式以进行显示。