写点什么

可移植类库(Portable Class Library)已支持 Noda Time

  • 2013-04-18
  • 本文字数:1062 字

    阅读完需:约 3 分钟

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 许可提供。

查看英文原文 Portable Class Library Support for Noda Time


感谢臧秀涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-04-18 09:281622
用户头像

发布了 256 篇内容, 共 80.4 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

IoTDB 能源电力解决方案:协助“源网储”数字化智能化转型,构建高质量新型电力系统

Apache IoTDB

园区数字化管理系统(源码+文档+部署+讲解)

深圳亥时科技

(Vue3结合ThreeJS开发3D)在线三维CAD中加载和保存STEP模型

WEB CAD SDK

一座重庆工厂,智能与制造的“两江之约”

脑极体

AI

企业的海外网络访问需求怎么解决?

Ogcloud

SD-WAN SD-WAN组网 SD-WAN国际专线 海外网络访问 海外网络连接

奇奇怪怪的编程语言:Malbolge

不在线第一只蜗牛

编程语言

多功能代码编辑器BBEdit for Mac 激活版

小玖_苹果Mac软件

客户服务新突破,天润融通助力电动车企业实现数智化转型

天润融通

天润融通:为国内外行业巨头提供定制化IT Service解决方案

天润融通

使用AI机器学习,轻松解决化合物配比优化问题

Altair RapidMiner

人工智能 AI 数据分析、 工业化设计 altair

如何以MLOps保障时效表达稳定性|得物技术

得物技术

算法 供应链

威睿三电全面开花,助力极氪问鼎销冠

科技热闻

AutoMQ x Iceberg SG Meetup: Table Topic 新特性统一流与分析首次公开

AutoMQ

云计算 kafka iceberg 活动预告 AutoMQ

垃圾清理应用卸载工具CleanMyMac X for Mac

小玖_苹果Mac软件

签约快讯|天润融通签约问界

天润融通

【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(8)

HarmonyOS SDK

harmoyos

浅谈CAF云应用框架

inBuilder低代码平台

框架 构架 云应用

CDN加速:优化网站服务器访问速度

Ogcloud

CDN 网络加速 CDN加速 网络加速服务 CDN网络加速

2024全球人形机器人领域深度调研和行业前瞻报告

机器人头条

特斯拉 大模型 人形机器人 具身智能

可移植类库(Portable Class Library)已支持Noda Time_.NET_Jonathan Allen_InfoQ精选文章