.net – 如何在数据库中存储TimeZoneInfo对象?

我知道有点误导的头衔从来没有真正想要存储TimeZoneInfo对象本身:相反,我想存储一些文化中立的标识符,然后可以稍后用它来重建TimeZoneInfo的一个实例.

目前,我正在存储TimeZoneInfo.Id属性的值,并且在WindowsWindows的英文版和俄文版本上似乎都可以,但我只想确保我做正确的事情.

解决方法

是的,Id是一个非本地化的标识符,因此这是一个适当的存储.

您应该知道一个可能的问题:标识符可以随着时间的推移而改变.我不知道Windows时区标识符是否存在问题,但它肯定会发生在Olson(zoneinfo)数据库中.例如,我最近正在看“太平洋/蓬皮”变成“太平洋/波恩佩”的问题.

我怀疑,由于微软对ID的控制更加严格,他们更有可能保持不变 – 即使如此,国家也可以更改名称,分为不同的国家(可能创造新的时区)等.

我不是在为这个问题提出任何修正 – 只是把它强调为一个潜在的问题.存储ID可能是可用的最佳方法,但请注意潜在的风险…

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...