我有来自第三方的一些数据,其中包含一些string Language
属性数据。检索到的一些示例数据如下所示:
“澳大利亚/墨尔本”
当我调查属性数据类型所基于的内容时,它是区域信息(tz数据库/ Olson数据库)。那是什么?我用谷歌搜索,这是信息......
听起来它被许多主要平台使用......但不是.NET。
所以,在我重新发明轮子之前(或者更重要的是,更新代码复合站点中的代码以将db列表嵌入到dll中),这已经存在于.NET基类库中了吗?
答案 0 :(得分:5)
这是一个区域信息(tz数据库/ Olson 数据库)。那是什么?
这是表示时区的便携式,非常标准方式。令人遗憾的是,.NET不能正确支持它,IMO。
您使用的是.NET 3.5吗?如果是这样,TimeZoneInfo
类是我们获得的最佳支持,但从Olson名称转换为Windows名称可能会非常棘手。理想情况下,您希望从Olson ID转换为Windows使用的ID ...我不知道有可用的ID。
编辑:经过一些挖掘,有几个链接:
我不知道这些内容保持更新的频率,但它们可能是您最好的选择。
答案 1 :(得分:2)
在Code Project上有一个很棒的.Net库,可以完全满足您的需求:
http://www.codeproject.com/KB/locale/zoneinfo_dotnet_api.aspx
我在几个与Google API交谈的项目中使用它,因为他们所有的时区都是ZoneInfo / Olsen数据库格式。
我还写了一篇关于设置它的博文:http://www.diaryofaninja.com/blog/2011/05/27/how-to-use-zoneinfotz-time-zones-in-net-applications
答案 2 :(得分:0)
将其转换为GMT? 查找+ x小时或-x小时&然后从您存储的日期/时间中减去偏移量。 例如。在你的例子中减去10,因为墨尔本是+10 GMT ??