【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

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

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

关注

评论

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

Capital

Echo_Wish

学习 进步 笔记 资源 本质

为什么 APISIX Ingress 是比 Emissary-ingress 更好的选择?

API7.ai 技术团队

最佳实践|焱融全闪存储实现与美的集团破千万 IOPS 性能

焱融科技

文件存储 分布式文件存储 高性能存储 全闪存储 美的

openGemini正式加入openEuler DB SIG,携手开展全方面技术创新

华为云开源

时序数据库

百度版ChatGPT:文心一言发布会盛大召开!

雪奈椰子

如何让人形机器人“行稳致远”?这篇顶级期刊的论文提出了新方法

优必选科技

机器人

《2022年IT行业项目管理调查报告》重磅发布!

禅道项目管理

最强阿里及大厂350道面试大全:框架+数据库+并发+开源+微服务

Java你猿哥

Java 数据库 架构 微服务 面经

李彦宏文心一言发布会 highlight

B Impact

GPT-4炸圈--多模态大模型

江湖修行

人工智能 大模型 GPT ChatGPT GPT-4

设计模式-策略模式

黑客不够黑

设计模式 策略模式

复旦邱锡鹏:深度剖析 ChatGPT 类大语言模型的关键技术

NLP资深玩家

人工智能 ChatGPT

屡试不爽!一份阿里Java程序性能实战笔记,啃完让你程序快上200%

Java你猿哥

Java ssm 面经

干货 | BitSail Connector开发详解系列一:Source

字节跳动数据平台

开源 数据集成 数据引擎 企业号 3 月 PK 榜

两会代表热议采用ChatGPT指导论文写作:防范抄袭的探索与思考

蓝海大脑GPU

人工智能 深度学习 ChatGPT

让 API 管理效率更进一步的 API7 DevPortal

API7.ai 技术团队

api 网关 API7

无需二次开发,SOAP-to-REST 简化企业用户的业务迁移和整合

API7.ai 技术团队

全球运营商的新共识:2025走向自智网络L4

脑极体

自智网络

使用价值三角方法来全方位分析产品

产品海豚湾

产品 产品经理 产品设计 产品运营 商业洞察

DevData Talks 直播预告 | 微众银行的研发效能实践有哪些经验?

思码逸研发效能

研发效能 DevData Talks

易观:正视GPT-4功能缺陷与能力局限可更好探索大模型应用

易观分析

科技

专业HTML文本编辑器:BBEdit 激活版

真大的脸盆

Mac Mac 软件 文本编辑器 文本编辑

软件测试/测试开发丨Docker 镜像构建可以分享的快乐

测试人

Docker 软件测试 测试开发

【Docker】MacOs安装

Aldeo

Docker 云原生

2 万字长文:声明式配置技术概述

Peefy

DevOps 编程语言 开发者工具 #Kubernetes# #开源

TCP 三次握手,给我长脸了噢

程序员小富

TCP

在追求卓越的路上,面对压力时,推荐你这二个做法。

叶小鍵

字节跳动DataLeap数据血缘实践

Openlab_cosmoplat

数据 开源社区 数据血缘

微帧自研|客观评价模型与主观DMOS分数拟合的分享与实用性探讨

微帧Visionular

计算机视觉 视频编解码

关于文件传输协议,你不知道的事

镭速

软件测试/测试开发丨学习Docker就应该掌握的dockerfile语法与指令

测试人

Docker 软件测试 测试开发

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