大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

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

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

关注

评论

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

大数据基本导论

五分钟学大数据

大数据

百度智能云成中国跳水队独家AI合作伙伴圆梦东京!

百度大脑

百度智能云

赋能制造产业智能化转型 百度大脑开放日福州解密

百度大脑

百度大脑 开放日 智能化

特斯拉行车数据被篡改?专家称车企很难自证清白,保留“数据指纹”的区块链技术在路上

CECBC

指纹

HDFS NameNode中的FSImage与edits详解

五分钟学大数据

hdfs

死亡直播

箭上有毒

生活随想 4月日更

边开飞机边换引擎?我们造了个新功能保障业务流量无损迁移

阿里巴巴云原生

容器 运维 k8s 中间件 弹性计算

What CANN Can?一辆小车背后的智能故事

脑极体

聪明人的训练(二十八)

Changing Lin

4月日更

HDFS文件限额配置

五分钟学大数据

hadoop

ELK 教程 – 高效发现、分析和可视化你的数据

码语者

elastic DevOps ELK Elastic Stack ELK Stack

你的企业会讲故事吗?

石云升

团队建设 28天写作 职场经验 管理经验 4月日更

Jcenter 停止服务,说一说我们的迁移方案

Antway

android maven Gradle

软件 IT 专业的高校学生有关在线课程的问卷调查

程序员历小冰

Spring Cloud Stream 体系及原理介绍

阿里巴巴云原生

Java 负载均衡 微服务 云原生 中间件

微信小程序登录流程详解

frank-say

IT 专业高校大学生就业方向状况调查问卷

架构精进之路

调查报告 4月日更 InfoQ 写作平台 1 周年

排查dubbo接口重复注销问题,我发现了一个巧妙的设计

捉虫大师

dubbo

云信技术系列课 | RTC 系统音频弱网对抗技术发展与实践

网易云信

WebRTC 音频

如何通过openLooKeng更高效访问HBase?

LooK

Java 大数据 Bigdata MySQL 高可用

最新、最全、最详细的 Git 学习笔记总结(2021最新版)

民工哥

后端 Git Submodule linux运维 代码管理

C盘内存杀手,原来是这款出人意料的被闲置的软件|iTunes

彭宏豪95

效率 工具 4月日更 iTunes

生命中的无奈

小天同学

读书 读后感 生命 4月日更

《趣学音视频》这段“朋友圈模版视频”的扛鼎之作是如何诞生的

ucsheep

Python 音视频 ffmpeg Pillow

云原生新边界——阿里云边缘计算云原生落地实践

阿里巴巴云原生

云计算 容器 运维 云原生 边缘计算

面向软件 IT 专业的高校大学生课余时间自学情况调查

xiezhr

大学生日常 IT 高校学院 问卷调查

HDFS的Java API

五分钟学大数据

hdfs

如何把 Caffeine Cache 用得如丝般顺滑?

vivo互联网技术

Java 缓存 服务器 Caffeine

资讯|WebRTC M90 更新

网易云信

WebRTC

智能小车系列-串口设置

波叽波叽啵😮一口盐汽水喷死你

串口 树莓派串口 ttyAMA0

智能小车系列-动力系统(ezPWM)

波叽波叽啵😮一口盐汽水喷死你

pwm ezPWM PWM信号

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