zoukankan      html  css  js  c++  java
  • 可移植类库(Portable Class Library)已支持Noda Time

    Noda Time是用于.NET的高级日期/时间库,其最新版本适用于Windows 8、Windows Phone 7和Windows Phone 8。该版本还提供了NuGet包和全面的用户指南

    Noda Time将类型系统分为两类,即本地类型与全球类型。

    本地类型不会绑定到任何时区,但可能会包含一个日历组件。这与DateTimeKind被设置Unspecified的DateTime类相似。此外,Noda Time还支持只有时间或只有日期的值。

    全球类型基于Instant的概念。一个Instant是通用时间系统中的某个特定时刻。为了与其他系统兼容,它以时间片(tick)为单位,从世 界标准时间1970年1月1日(Unix纪元)开始计算,这里每毫秒被划分为1万个时间片,从而能够支持非常高的精度。但应该指出的是,某些科学仪器能够 以小到10-18秒的时间片来测量时间。

    诸如ZonedDateTime等类会将Instant与时区信息结合起来。与DateTimeOffset不同,ZonedDateTime包含了需要显示给用户的实际时区信息。

    下面这幅来自其文档的转换图展现了这些核心类型是如何关联的:

    与BCL相比,Noda Time的另一个优势是对历史日期的支持。BCL的DateTime类表示的最小值是公元元年。Noda Time则支持表示到大约公元前27000年,可以用于应用中对古埃及和中国的年表进行的比较。

    Noda Time同时支持Windows和Olson时区数据库。由于各国政府经常会修改时区相关的法律,因此Noda Time允许开发者加入较新版本的数据库。

    在Noda Time中,Period和Duration有着不同的含义。Duration表示一段固定长度的时间,可用时间片进行计量。而Period则是抽象的概 念,例如“一个月”或“两周”。“由Period表示的时间流逝的总量并不是固定的:始于1月1日的‘一个月’,实际上比从2月1日开始的‘一个月’要 长,因为2月总是比1月短。”

    在面向Java的Joda Time的基础上,Noda Time是为了修正.NET日期/时间类中现存的许多问题而设计的。例如,它允许开发者直接表示日期而无需时间组件,从而避免不必要的时区转化将“12月10日零点”意外地变成“12月9日晚11点”这样的问题。

    Noda Time提供了IClock接口以支持测试。它通过SystemClock和FakeClock实现。初始化之后就可以手动递增FakeClock,或为它设置固定步长的自动增量。

    Noda Time基于Apache许可提供。

  • 相关阅读:
    Latex 双栏模式下表格太长怎么办?
    HTTP状态码大全
    You can't specify target table 'Person' for update in FROM clause
    mysql实战笔记
    「2020年中总结」这半年我又做了哪些副业?
    Mysql导入数据报错SQL Error(1153)
    PS制作电子签名
    Windows Server 2012 R2安装mssql
    Windows Server 2012 R2安装.net3.5
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/shihao/p/3029788.html
Copyright © 2011-2022 走看看