写点什么

可移植类库(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:281735
用户头像

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

关注

评论

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

鑫裕集团:引领建筑行业创新,开启数智化转型新篇章

用友BIP

建筑数智化

探索容灾架构演进之路-从单点到异地多活

柠檬汁Code(binbin0325)

容灾 异地多活 备份 & 恢复 部署架构 同城双活

面试官:网关如何实现限流?

王磊

Java 面试 java面试

GreatSQL社区与Amazon、Facebook、Tencent共同被MySQL致谢

GreatSQL

greatsql

10m带宽香港服务器的优势

Geek_f19a80

服务器

「Macos最新」XMind for mac v24.01中文版

加油,小妞!

思维导图 XMind

华为云康宁:携手伙伴,基于核心技术构筑健康可持续新生态

华为云开发者联盟

云计算 后端 华为云 大模型 华为云开发者联盟

从热爱到深耕,全国Top10开源软件出品人探索“开源云上行”

华为云开发者联盟

开源 华为云 华为云开发者联盟 先锋开发者云上说

统一身份认证平台之SSO建设

权说安全

单点登录

开发者的福利-Amazon CodeWhisperer

归来

大模型 Amazon CodeWhisperer AWS Toolkit

app小程序定制开发的优势

Geek_16d138

小程序开发 app定制开发

Embedding技术与应用(4): Embedding应用工程探析

Baihai IDP

人工智能 深度学习 程序员 AI 白海科技

专家观点:基于数智化GOT模型的流程制造业绩效管理

用友BIP

绩效管理

第六期 |《实时洞察 智能运营一用友企业绩效管理白皮书》解读

用友BIP

企业绩效

Kubernetes Gateway API 攻略:解锁集群流量服务新维度!

SEAL安全

Gateway 运维‘ kubernetes 运维 企业号11月PK榜

第9期 | 用友BIP项目云,助力企业投资类项目管理降本增收

用友BIP

项目管理

业财融合促进企业高质量发展

用友BIP

业财融合

大模型重塑软件设计,南京真我加入飞桨技术伙伴,大模型生态圈成员又添一员!

飞桨PaddlePaddle

大模型 星河社区 AI原生应用

龙蜥社区召开理事闭门会,讨论多项社区规划

OpenAnolis小助手

阿里云 开源 龙蜥社区 开放原子 理事会

微信多开插件:WeChatHooks for mac

加油,小妞!

微信多开 WeChatHooks 微信插件

光纤的跳线和尾纤

小齐写代码

打造数字经济全新引擎,用友iuap构建实体经济数智底座

用友BIP

数智底座

企业网站快速搭建的重点|软件定制app小程序建设

Geek_16d138

网站建设 小程序开发 app定制开发

租用VPS的终极指南:提升您的网络性能和灵活性

一只扑棱蛾子

VPS

极速进化,融合“新“生 | StarRocks Summit 2023 技术交流峰会圆满落幕

StarRocks

数据库 OLAP StarRocks

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