没有jodatime,rust怎么方便高效的操作时间呢?
关注我,学习Rust不迷路!!
当使用Rust进行日期操作时,可以使用 chrono 库。下面给出了二十个常见的日期操作的例子:
1. 获取当前日期和时间:
use chrono::prelude::*;let current_datetime = Local::now();
println!("Current datetime: {}", current_datetime);
2. 获取当前日期:
use chrono::prelude::*;let current_date = Local::today();
println!("Current date: {}", current_date);
3. 获取当前时间:
use chrono::prelude::*;let current_time = Local::now().time();
println!("Current time: {}", current_time);
4. 根据年、月、日创建日期:
use chrono::{NaiveDate, Local};let date = NaiveDate::from_ymd(2022, 1, 1);
println!("Date: {}", date);
5. 根据时、分、秒创建时间:
use chrono::{NaiveTime, Local};let time = NaiveTime::from_hms(12, 34, 56);
println!("Time: {}", time);
6. 将日期和时间合并为日期时间:
use chrono::{NaiveDate, NaiveTime, NaiveDateTime};let date = NaiveDate::from_ymd(2022, 1, 1);
let time = NaiveTime::from_hms(12, 34, 56);
let datetime = NaiveDateTime::new(date, time);
println!("Datetime: {}", datetime);
7. 格式化日期时间为字符串:
use chrono::{NaiveDateTime, format::strftime};let datetime = NaiveDateTime::parse_from_str("2022-01-01 12:34:56", "%Y-%m-%d %H:%M:%S").unwrap();
let formatted_datetime = datetime.format("%Y-%m-%d %H:%M:%S").to_string();
println!("Formatted datetime: {}", formatted_datetime);
8. 在日期上进行加减操作:
use chrono::{NaiveDate, Duration};let date = NaiveDate::from_ymd(2022, 1, 1);
let new_date = date + Duration::days(7);
println!("New date: {}", new_date);
9. 计算两个日期之间的天数差:
use chrono::{NaiveDate, Duration};let date1 = NaiveDate::from_ymd(2022, 1, 1);
let date2 = NaiveDate::from_ymd(2022, 1, 10);
let duration = date2.signed_duration_since(date1);
let days_diff = duration.num_days();
println!("Days difference: {}", days_diff);
10. 比较两个日期的先后:
use chrono::{NaiveDate, Ordering};let date1 = NaiveDate::from_ymd(2022, 1, 1);
let date2 = NaiveDate::from_ymd(2022, 1, 10);
let ordering = date1.cmp(&date2);
println!("Date1 is {:?} Date2", ordering);
11. 获取当前月份:
use chrono::prelude::*;let current_month = Local::today().month();
println!("Current month: {}", current_month);
12. 获取当前年份:
use chrono::prelude::*;let current_year = Local::today().year();
println!("Current year: {}", current_year);
13. 获取当前日期是星期几:
use chrono::prelude::*;let current_weekday = Local::today().weekday();
println!("Current weekday: {}", current_weekday);
14. 获取指定日期的年份:
use chrono::prelude::*;let date = NaiveDate::from_ymd(2022, 1, 1);
let year = date.year();
println!("Year: {}", year);
15. 获取指定日期的月份:
use chrono::prelude::*;let date = NaiveDate::from_ymd(2022, 1, 1);
let month = date.month();
println!("Month: {}", month);
16. 获取指定日期的日:
use chrono::prelude::*;let date = NaiveDate::from_ymd(2022, 1, 1);
let day = date.day();
println!("Day: {}", day);
17. 获取指定日期是星期几:
use chrono::prelude::*;let date = NaiveDate::from_ymd(2022, 1, 1);
let weekday = date.weekday();
println!("Weekday: {}", weekday);
18. 获取指定日期所在月份的天数:
use chrono::prelude::*;let date = NaiveDate::from_ymd(2022, 2, 1);
let days_in_month = date.with_day0(0).unwrap().day();
println!("Days in month: {}", days_in_month);
19. 根据日期计算年龄:
use chrono::prelude::*;let birthday = NaiveDate::from_ymd(1990, 5, 15);
let today = Local::today().naive_local();
let age = today.year() - birthday.year();
println!("Age: {}", age);
20. 判断是否为闰年:
use chrono::prelude::*;let year = 2024;
let is_leap_year = NaiveDate::from_ymd_opt(year, 2, 29).is_some();
println!("Is leap year: {}", is_leap_year);
这些例子展示了如何使用 chrono 库进行日期操作,包括获取当前日期和时间、创建日期和时间、格式化日期和时间、进行加减操作、计算差值、比较日期的先后顺序等。
关注我,学习Rust不迷路!!
相关文章:
没有jodatime,rust怎么方便高效的操作时间呢?
关注我,学习Rust不迷路!! 当使用Rust进行日期操作时,可以使用 chrono 库。下面给出了二十个常见的日期操作的例子: 1. 获取当前日期和时间: use chrono::prelude::*;let current_datetime Local::now()…...
如何把pdf转成cad版本?这种转换方法非常简单
将PDF转换成CAD格式的优势在于,CAD格式通常是用于工程设计和绘图的标准格式。这种格式的文件可以在计算机上进行编辑和修改,而不需要纸质副本。此外,CAD文件通常可以与其他CAD软件进行交互,从而使得工程设计和绘图过程更加高效和精…...
MySQL常用函数方法
字符串函数 函数描述举例left(str, length)从左开始截取字符串,截取length个left(2023-08-04, 7) 2023-08right(str, length)从右开始截取字符串,截取length个 right(2023-08-04, 5) 08-04 substring(str, pos, length) substring(被截取字…...
Linux命令200例专栏导读:实用指南助你成为Linux大师
🏆作者简介,黑夜开发者,全栈领域新星创作者✌,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已…...
ICN6202 MIPIDSI转LVDS桥接芯片的功能及特征 调试文档资料
产品特征功能: 输入:MIPI DSI 支持MIPI D-PHY Version 1.00.00 和 MIPI DSI Version 1.02.00. 可接收MIPI DSI 18bpp RGB666 and 24bpp RGB888 packets 4 lane data1 lane clock 4对数据线可以选择1、2、3、4lane data 每对差分数据传输线最大可…...
vscode 格式问题
1、EditorConfig for VS Code 插件 shift alt f 格式化文件(VS Code格式化按键),如下图,每个缩进4空格 代码如下 创建文件名 .editorconfig root true [*] charset utf-8 indent_style space indent_size 2 end_of_…...
OPENCV C++(三)二值化灰度函数+调用摄像头+鼠标响应+肤色检测
RGB转灰度函数 cvtColor(image, gray, COLOR_BGR2GRAY); 图像 目标图像 rgb转灰度 大津法二值化函数 threshold(gray, result1, 84, 255, THRESH_OTSU); 灰度图,目标图,阈值,大于阈值的转换的像素值,方法为大津法 自适应二值…...
zabbix简易入门:基本的网络监控、WEB监控
需求背景: 我们越来越发现:网络越来越复杂,网络、应用、云端……故障点随时可能发生,而我们不能人工盯着所有的问题,所以,网管软件是必须的。那么没有预算的情况下,我们只好自己布署简单的…...
51单片机学习--DS1302可调时钟
之前学习过用定时器做的时钟,但是那样不仅误差大还费CPU,接下来利用DS1302时钟模块做一个可调实时时钟 这一次直接编写DS1302模块,首先要在DS1392.c 中根据下面的模块原理图进行位声明: sbit DS1302_SCLK P3^6; sbit DS1302_IO …...
Matlab统计字符串中共有多少种字符以及每种字符出现次数的功能实现(Matlab R2021a)
在做2023年深圳杯B题的时候,需要使用隐写技术(将特定信息嵌入信息载体且不易被察觉,可被广泛地应用于著作权保护、数据附加等领域)将《中华人民共和国著作权法》全篇10314个字符写入图片,首先我想到的是利用霍夫曼编码…...
HTTPS文件传输
目录 0.https概述1.单钥匙锁2.双钥匙锁 - 防篡改3.双钥匙锁 - 防泄漏4.单双钥匙锁相互配合 0.https概述 HTTPS其实就是HTTP协议加上TLS/SSL,SSL是个加密套件,负责对HTTP的数据进行加密,TLS是SSL的升级版,现在提到HTTPS࿰…...
LOL-v2数据集和VE-LOL数据集的区别
LOL-v2数据集和VE-LOL数据集的区别 LOL-v2 LOL-v2数据集[64]包括两个不同的子集,即LOL-v2-real和LOL-v2-synthetic。LOL-v2-real子集是通过改变ISO和曝光时间在真实场景中捕获的,包括689对用于训练和测试的图像。在LOL-v2-synthetic子集中,…...
RabbitMQ(一) - 基本结构、SpringBoot整合RabbitMQ、工作队列、发布订阅、直接、主题交换机模式
RabbitMQ结构 Publisher : 生产者 Queue: 存储消息的容器队列; Consumer:消费者 Connection:消费者与消息服务的TCP连接 Channel:信道,是TCP里面的虚拟连接。例如:电缆相当于TCP,信道是一条独立光纤束&…...
涉及IMU的专业术语
文章目录 零偏维纳过程/布朗运动随机游走航迹推算 零偏 IMU(惯性测量单元)是一种用于测量物体在空间中的加速度和角速度的装置。它通常由加速度计和陀螺仪组成,这些传感器可以帮助确定物体的运动状态和方向。 在IMU中,“零偏”&…...
二维数组对角线判断
二维数组对角线判断 对于两个点(x1, y1)和(x2, y2)。如何判断二者是否在同一条正对角线,反对角线,或者正或反对角线上? 正对角线判断 x2-x1 y2 -y1 证明:任意一点(x1k, y1k),(k…...
数据可视化(六)多个子图及seaborn使用
1.多个子图绘制 #绘制多个子图 #subplot(*args,**kwargs) 每个subplot函数只能绘制一个子图 #subplots(nrows,ncols) #fig_add_subplot(行,列,区域) #绘制子图第一种方式 plt.subp…...
opencv-34 图像平滑处理-双边滤波cv2.bilateralFilter()
双边滤波(BilateralFiltering)是一种图像处理滤波技术,用于平滑图像并同时保留边缘信息。与其他传统的线性滤波方法不同,双边滤波在考虑像素之间的空间距离之外,还考虑了像素之间的灰度值相似性。这使得双边滤波能够有…...
Leetcode 268. Missing Number
Problem Given an array nums containing n distinct numbers in the range [0, n], return the only number in the range that is missing from the array. Algorithm Sum all the numbers as x x x and use n ( n 1 ) 2 − x \frac{n(n1)}{2} - x 2n(n1)−x. Code …...
MybatisPlus实战笔记
概述 Mybatis支持定制化SQL、存储过程以及高级映射,避免几乎所有的 JDBC 代码和手动设置参数以及获取结果集。可以使用简单的 XML 或注解来配置和映射原生信息,将接口和Java的POJO映射成数据库中的记录。 缺点: SQL工作量很大,尤…...
Android Studio 报错:Failed to create Jar file xxxxx.jar
通过分析,新下载的项目没有project/gradle目录,故通过其他项目复制到当前项目,就解决了该问题。 同时也出现了新的问题 Unable to start the daemon process.The project uses Gradle 4.1 which is incompatible with Java 11 or newer.原因…...
告别熬夜!揭秘CSDNer私藏的PPT生成神器
一、PPT 制作之痛:传统与现状在日常的工作与学习中,PPT(PowerPoint)演示文稿已然成为信息展示和沟通的重要工具。无论是商务汇报、学术演讲,还是课堂教学,一份制作精良的 PPT 都能极大地提升信息传递的效果…...
GObject框架:C语言的面向对象编程实践
1. GObject框架概述GObject作为GLib库的核心组件,为C语言开发者提供了一套完整的面向对象编程范式。这个框架完美解决了C语言缺乏原生面向对象支持的痛点,让开发者能够在保持C语言高效性的同时,享受到面向对象编程的诸多优势。我在实际项目中…...
深入解析OpenPose:从原理到代码实现的完整指南
1. 姿态估计与OpenPose基础认知 想象一下你正在看一段街舞视频,舞者的每个关节运动轨迹都能被自动标注出来——这就是姿态估计技术的魅力。作为计算机视觉领域的经典任务,它的核心目标是检测图像或视频中的人体关键点(如肘部、膝盖等…...
避坑指南:AUTOSAR FlashDriver操作DFlash模拟EEPROM时,你最容易忽略的5个细节
AUTOSAR实战:DFlash模拟EEPROM的五大隐蔽陷阱与工程化解决方案 在汽车电子控制单元(ECU)开发中,使用DFlash模拟EEPROM存储NvM数据已成为行业普遍选择——既能降低硬件成本,又能满足AUTOSAR标准的数据存储需求。但许多工…...
2026普通人如何逆袭进大模型圈?吴师兄亲授4大方向+3坑避坑+真实学习路线
站在现在回头看,会发现一个有趣的现象: AI 大潮滚滚 2 年,流量的风向能变,岗位的 JD 能变,各家模型能天天更新,但真正能落地的东西,并没有变。 这 2 年里,我带过很多转行同学&#…...
2025年中国市场SCA工具深度评测:国产化浪潮下的安全新选择
随着数字化转型进入深水区,软件供应链安全已成为企业不可忽视的战略要地。2025年,在信创政策持续深化与国产化替代加速的双重背景下,软件成分分析(SCA)工具作为DevSecOps体系中的关键一环,正迎来前所未有的市场机遇与挑战。这场由…...
PADS Layout VX.2.2 - 贴片元器件坐标导出与Excel解析实战
1. 从PADS Layout导出贴片坐标的完整流程 第一次用PADS Layout导出坐标文件时,我对着那个CAM Plus对话框研究了半天——到底该选哪个格式?输出文件怎么变成Excel?这些坑我都踩过。现在就把最稳的操作流程分享给你,保证5分钟搞定。…...
Windows Server 2012系统FileZilla搭建FTP服务器
一、FTP介绍 1.FTP服务器简介 FTP 服务器是基于文件传输协议(File Transfer Protocol)搭建的文件共享服务,主要用于在网络中实现客户端与服务器之间的文件上传、下载及管理。它支持多用户访问、权限控制、目录隔离等功能,广泛应用…...
跑不出密码别怪字典!实战解析Kali Linux中aircrack-ng跑包效率提升的5个关键技巧
跑不出密码别怪字典!实战解析Kali Linux中aircrack-ng跑包效率提升的5个关键技巧 当你盯着终端里aircrack-ng跑包的进度条,看着它缓慢地遍历字典却始终无法命中正确密码时,那种挫败感每个渗透测试者都深有体会。但问题真的出在字典上吗&…...
Windows Android兼容环境部署指南:跨平台运行的技术实现与实践
Windows Android兼容环境部署指南:跨平台运行的技术实现与实践 【免费下载链接】WSA-Windows-10 This is a backport of Windows Subsystem for Android to Windows 10. 项目地址: https://gitcode.com/gh_mirrors/ws/WSA-Windows-10 在数字化办公与开发场景…...
