没有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.原因…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
