2

我有一些来自第 3 方的数据,其中包括一些string Language属性数据。检索到的一些示例数据如下所示:

“澳大利亚/墨尔本”

当我调查属性数据类型基于什么时,它是Zone Info (tz database / Olson database)。是吗?我用谷歌搜索,这是信息....

听起来它被许多主要平台使用......但不是 .NET。

那么,在我重新发明轮子之前(或者,更确切地说,从那个 codeplex 站点更新代码以将 db 列表嵌入到 dll 中),这是否已经存在于 .NET 基类库中?

4

3 回答 3

5

这是一个区域信息(tz 数据库 / Olson 数据库)。是吗?

这是表示时区的可移植的、非常标准的方式。IMO,.NET 不能正确支持它,这是一种耻辱。

您使用的是 .NET 3.5 吗?如果是这样,TimeZoneInfo该类是我们得到的最好的支持,但是从 Olson 名称转换为 Windows 名称可能会很棘手。理想情况下,您希望将 Olson ID 转换为 Windows 使用的 ID……但我不知道是否有可用的 ID。

编辑:经过一点点挖掘,几个链接:

我不知道它们多久更新一次,但它们很可能是你最好的选择。

于 2009-03-19T11:47:29.653 回答
2

Code Project 上有一个很棒的小 .Net 库,它完全符合您的需要:

http://www.codeproject.com/KB/locale/zoneinfo_dotnet_api.aspx

http://zoneinfo.codeplex.com/

我在几个与 Google API 对话的项目中使用它,因为它们的所有时区都是 ZoneInfo/Olsen 数据库格式。

我还写了一篇关于设置的博客文章:http ://www.diaryofaninja.com/blog/2011/05/27/how-to-use-zoneinfotz-time-zones-in-net-applications

于 2011-05-28T02:22:41.317 回答
0

将其转换为格林威治标准时间?查找 +x hrs 或 -x hrs,然后从您存储的日期/时间中减去偏移量。例如。在您的示例中减去 10,因为墨尔本是 +10 GMT?

于 2009-03-19T11:34:41.290 回答