关于如何包括和加载NodaZoneData文件中的tz数据,有一个“使用NodaZoneData文件”部分。
代码部分显示以下内容
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);
Run Code Online (Sandbox Code Playgroud)
如何将创建的提供程序设置为NodaTime库,以将其用作默认值?NodaTime版本不遵循tz数据版本。将来会改变吗?还有另一种方法来获取更新的NodaTime库,并将tzdb数据更新为nuget吗?
谢谢
如何将创建的提供程序设置为NodaTime库,以将其用作默认值?
Noda Time中很少有东西使用任何提供程序作为默认值。(类似地,默认情况下,我们不使用系统时区,而是尝试避免隐式使用当前区域性(除了兼容性)。)在当前的2.0源代码中,唯一的引用位于ClockExtensions和DateTimeZoneProviders.Serialization(XML使用)和二进制序列化,并且可以在应用程序代码中设置)。
如果您想拥有自己的应用程序范围内的默认值,建议您使用静态属性创建一个自己的类,该属性暴露一个IDateTimeZoneProvider或一个单例。请在其他地方引用DateTimeZoneProviders.Tzdb。
在保持最新状态方面:
nzd每个新版本发布后不久,就会在Noda Time网站上发布一个新文件。您可以通过获取http://nodatime.org/tzdb/latest.txt(其中包含最新文件的URL)来检测到这一点。没有一个选项易于实现,还有许多其他的Noda Time工作要做(使用docfx重新实现网站,使用BenchmarkDotNet安排基准测试并在网站上公开该数据,当然还要完成2.0代码库) 。我们会尽力而为的,但请不要屏息,因为它是Real Soon Now。
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |