如何为NodaTime. net更新NodaTime.xml

本文关键字:NodaTime 更新 xml net | 更新日期: 2023-09-27 18:14:12

我是nodeatime的新手,用它做样本。NodaTime非常棒,在阅读NodaTime实现的文档时,我注意到有一个文件(包含时区数据)与NodaTime.dll库一起下载。

我使用"Nuget Packages"将NodaTime库添加到我的项目中,当安装NodaTime包到我的项目时,我看到NodaTime.dll和NodaTime.xml在bin文件夹

关于我的项目中安装的nodeatime库的信息:

   NodaTime.dll version 1.3.0
   NodaTime.xml (came along with the NodaTime.dll)

问题:

  1. 我需要手动更新NodaTime.xml吗?

  2. 在这个链接(更新tz数据库)中,我阅读了一些更新tz数据库的信息,但这对我来说似乎很困惑。如何下载和更新NodaTime.xml文件?

  3. 提供更新NodaTime.xml文件和一些相关路径的简短说明?

  4. 是否有任何链接可能有助于我了解关于NodaTime的更新?

也提供您关于问题和解决方案的宝贵建议,一些使用它的有价值的技巧。

nodeatime在我的项目中的主要作用是查找给定的时区是否有夏令时,并根据夏令时转换日期时间

如何为NodaTime. net更新NodaTime.xml

您混淆了XML文档文件和时区(nzd)文件。您根本不需要更新XML文件

要获取最新版本的TZDB数据,您应该:

  • 获取(并存储)http://nodatime.org/tzdb/latest.txt的内容。这只是一个URL。
  • 如果不是的值,你应该获取URL的内容,例如http://nodatime.org/tzdb/tzdb2014e.nzd
  • 打开下载文件的流(这将取决于您的平台,但类似FileStream),并使用TzdbDateTimeZoneSource.FromStream从它加载TzdbDateTimeZoneSource
  • TzdbDateTimeZoneSource包装在DateTimeZoneCache中(仅与构造函数一起)以获得IDateTimeZoneProvider,这是您应该在主应用程序代码中使用的

如果你的应用程序是周期性重新启动的,你可以在启动时这样做,如果它是一个需要持续运行的web服务器,这就有点困难了,因为你需要一种方法来告诉你的应用程序使用新的IDateTimeZoneProvider

这基本上是文档已经说过的,当然——你说过你发现它令人困惑,但不是在什么方式…如果这个答案还是不清楚,请详细说明,我会看看我能做什么。