.NET开源强大的高级日期和时间库

news/2025/1/23 11:11:50/文章来源:https://www.cnblogs.com/netcore5/p/18687378

NodaTime 是一个为 .NET 设计的开源高级日期和时间库,提供了比 .NET 框架自带的 DateTimeDateTimeOffset 更加丰富和可靠的日期时间操作功能。

1. 安装 NodaTime

首先,通过 NuGet 安装 NodaTime 包:

Install-Package NodaTime

2. 基本概念

NodaTime 提供了多种日期和时间类型,主要包括:

  • Instant:表示从 Unix 纪元(1970-01-01T00:00:00Z)开始的纳秒数,是一个全局唯一的时间点。
  • LocalDate:表示本地日期,不包含时间或时区信息。
  • LocalTime:表示本地时间,不包含日期或时区信息。
  • LocalDateTime:表示本地日期和时间,不包含时区信息。
  • ZonedDateTime:表示带时区的日期和时间。
  • Duration:表示时间间隔,精确到纳秒。
  • Period:表示日期和时间的周期,可以包含年、月、日、小时、分钟、秒等。

3. 使用教程

3.1 获取当前时间

using NodaTime;// 获取当前 UTC 时间
Instant now = SystemClock.Instance.GetCurrentInstant();
Console.WriteLine($"Current UTC time: {now}");

3.2 时区转换

// 将 Instant 转换为带时区的时间
ZonedDateTime nowInUtc = now.InUtc();
Console.WriteLine($"Current UTC time: {nowInUtc}");// 获取伦敦时区并进行转换
var london = DateTimeZoneProviders.Tzdb["Europe/London"];
ZonedDateTime nowInLondon = now.InZone(london);
Console.WriteLine($"Current London time: {nowInLondon}");

3.3 创建本地日期和时间

// 创建本地日期和时间
LocalDate localDate = new LocalDate(2024, 7, 26);
LocalTime localTime = new LocalTime(10, 26, 9);
LocalDateTime localDateTime = localDate.At(localTime);
Console.WriteLine($"Local date and time: {localDateTime}");

3.4 时区转换(带时区的时间)

// 创建带时区的时间
LocalDateTime localDateTime = LocalDateTime.FromDateTime(new DateTime(2024, 7, 26, 10, 26, 9));
DateTimeZone systemTimeZone = DateTimeZoneProviders.Tzdb.GetSystemDefault();
DateTimeZone newYorkTimeZone = DateTimeZoneProviders.Tzdb["America/New_York"];
ZonedDateTime zonedDateTime = localDateTime.InZoneLeniently(newYorkTimeZone);
Console.WriteLine($"New York time: {zonedDateTime}");

3.5 时间间隔计算

// 计算时间间隔
Instant now = SystemClock.Instance.GetCurrentInstant();
Duration duration = Duration.FromMinutes(3);
Instant then = now + duration;
Console.WriteLine($"Current time: {now}");
Console.WriteLine($"Time after 3 minutes: {then}");

3.6 格式化输出

// 格式化日期输出
LocalDate localDate = new LocalDate(2024, 7, 26);
string formattedString = localDate.ToString("yyyy-MM-dd");
Console.WriteLine($"Formatted date: {formattedString}");

项目地址

  • GitHub 地址:
  • 官方文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/873624.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python运行找不到tcl

运行程序提示如下: 说明D:/python/lib/tcl8.6找不到tcl8.6 解决办法:将D:\python\tcl下的tcl8.6和tk8.6两个文件夹复制到D:/python/lib/下问题得到解决

cad的打印到pdf 页边距处理

修改为微软的打印机, microsoft print to pdf后可以正常打印 但是测试过程中看到微软这个打印无法打印a2图纸 查询后是a2图纸不在默认的微软打印的列表中 按照网上的教程做了增加https://zhidao.baidu.com/question/988163076953180379.html我看图纸比例是按照1.8倍数来的, 按…

DolphinScheduler接口实操(二):如何寻找接口

转载自风_间 上一篇写了《DolphinScheduler接口实操(一):利用接口实现高效批量工作流导入及脚本上线》,通过DolphinScheduler的一些接口来实现导入-上线工作流,那么DolphinScheduler的接口应该怎么找呢?在此简单总结一篇。 接下来以手动执行一次工作流为例。 寻找接口 首…

qemu 搭建 uos ARM 架构

参考 https://blog.csdn.net/qq_41619571/article/details/1244310521.资料包下载 QEMU下载地址:链接:https://pan.baidu.com/s/1onUxTbS3RBXdBWWEwAnUBw 提取码:8888 如果不能下载请到官网下载 https://soft.wsyhn.com/soft/qemu9.0.0.exe 操作…

网站后台数据库修改密码

要修改网站后台数据库的密码,您需要访问数据库管理工具,如phpMyAdmin或MySQL Workbench。在这些工具中,您可以找到用户表,并修改相应的密码字段。具体的步骤和操作可能因数据库类型和管理工具而异。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种C…

初创团队如何实现高效率管理任务和人员?4种方法和工具学起来

在当今竞争激烈、节奏快速的商业环境中,团队高效管理成为企业脱颖而出、持续发展的核心要素。高效管理的团队犹如一部精密运转的机器,各部分协同配合,能够显著提升工作效率,增强团队协作能力,保障项目顺利推进,为企业创造更大的价值。接下来,我们将深入剖析实现团队高效…

网站里的代码被修改了怎么办?

如果您发现网站里的代码被修改了,首先要做的是尽快采取措施恢复原始代码,以防止进一步的损失或安全问题。以下是一些建议:备份原始代码:如果您有网站代码的备份,立即恢复备份。如果没有备份,尝试从版本控制系统(如Git)中恢复代码。 检查修改记录:查看网站的版本控制系…

如何修改网站字体

修改网站字体涉及编辑CSS文件:访问文件:使用FTP软件或代码编辑器访问网站的根目录,找到包含CSS样式的文件。 打开文件:使用代码编辑器打开文件,找到需要修改的字体样式部分。 编辑字体属性:修改其中的字体属性(如font-family、font-size等)。 保存文件:保存文件并上传…

尝试本地部署|DeepSeek

微博上看到DeepSeek的报告,尝试想本地部署 百度,bing 后,深感英文太差,找个翻译帮助; 1、找到网址 how-to-run-locally https://github.com/deepseek-ai/DeepSeek-V3?tab=readme-ov-file#6-how-to-run-locally 2、按步骤Clone git clone https://github.com/deepseek-…

使用SpongeExt快捷完成CudaSPONGE结合PySAGES的增强采样

基于CudaSPONGE高性能分子动力学模拟采样工具,和PySAGES高性能增强采样软件,我简单的封装了一个SpongeExt插件,可以用于无感结合CudaSPONGE和PySAGES进行增强采样分子动力学模拟。技术背景 在前面的一些文章中,我们介绍过关于CudaSPONGE的安装和基础使用方法,CudaSPONGE提…

【亲测可用】Windows激活神器HEU KMS Activator v42.3.3

软件介绍 HEU KMS Activator,简洁高效的全能KMS/OEM激活工具,适用所有Windows, Office版本,无需联网即可一键激活,支持UEFI的KMS激活工具。KMS服务是微软对Windows, Office等产品的批量许可服务,利用KMS可以激活局域网内的产品。该工具利用KMS机制在系统搭建KMS服务器,从…