如何为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)
问题:
我需要手动更新NodaTime.xml吗?
在这个链接(更新tz数据库)中,我阅读了一些更新tz数据库的信息,但这对我来说似乎很困惑。如何下载和更新NodaTime.xml文件?
提供更新NodaTime.xml文件和一些相关路径的简短说明?
是否有任何链接可能有助于我了解关于NodaTime的更新?
也提供您关于问题和解决方案的宝贵建议,一些使用它的有价值的技巧。
nodeatime在我的项目中的主要作用是查找给定的时区是否有夏令时,并根据夏令时转换日期时间
您混淆了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
。
这基本上是文档已经说过的,当然——你说过你发现它令人困惑,但不是在什么方式…如果这个答案还是不清楚,请详细说明,我会看看我能做什么。