首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodaTime更新手册tz db

NodaTime更新手册tz db
EN

Stack Overflow用户
提问于 2016-09-01 11:04:52
回答 1查看 161关注 0票数 1

有一节“使用NodaZoneData文件”介绍了如何从NodaZoneData文件中包含和加载tz数据。

代码部分显示了以下内容

代码语言:javascript
复制
    IDateTimeZoneProvider provider;
    // Or use Assembly.GetManifestResourceStream for an embedded file
    using (var stream = File.OpenRead("tzdb-2013h.nzd"))
    {
        var source = TzdbDateTimeZoneSource.FromStream(stream);
        provider = new DateTimeZoneCache(source);
    }
    Console.WriteLine(provider.SourceVersionId);

如何将创建的提供程序设置为NodaTime库,以便将其用作默认值?NodaTime发行版不遵循tz数据发布。这将来会否改变呢?是否有另一种方法可以获得更新的NodaTime库,并将其数据更新为nuget?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-02 06:23:50

如何将创建的提供程序设置为NodaTime库,以便将其用作默认值?

Noda Time中很少使用任何提供者作为默认值。(类似地,默认情况下我们不使用系统时区,并且试图避免隐式地使用当前区域性,而不是为了兼容性。)查看当前的2.0源代码,唯一的引用是ClockExtensionsDateTimeZoneProviders.Serialization (这是由XML和二进制序列化使用的,可以在应用程序代码中设置)。

如果您想拥有自己的应用程序范围内的默认设置,我建议您使用一个静态属性创建您自己的类,该属性公开一个IDateTimeZoneProvider,或者可能是一个单例。如果不是这样的话,请参考DateTimeZoneProviders.Tzdb

在保持最新情况方面:

  • 在每个新版本发布后不久,Noda网站上就会发布一个新的nzd文件。您可以通过获取包含到最新文件的URL的http://nodatime.org/tzdb/latest.txt来检测这一点。
  • 我们正在考虑如何发布nuget包:
    • 拥有一个只包含数据的nuget包(可能还有少量的“引导”代码),并从NodaTime.dll中删除嵌入的数据。
    • 拥有一个包含所有TZDB特定代码的nuget包,并从NodaTime.dll中删除嵌入的数据。
    • 只需更改我们的发布实践,以便新的NodaTime nuget包可以与新文件同时被推送。

实现这些选项都不简单,还有许多其他Noda时间工作要做(用docfx重新实现网站、使用BenchmarkDotNet调度基准并在网站上公开这些数据,当然还要完成2.0代码库)。我们会到的,但不要屏住呼吸,因为它现在是真实的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39269860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档