当前位置: 首页 > news >正文

没有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不迷路!!

http://www.lryc.cn/news/109883.html

相关文章:

  • 如何把pdf转成cad版本?这种转换方法非常简单
  • MySQL常用函数方法
  • Linux命令200例专栏导读:实用指南助你成为Linux大师
  • ICN6202 MIPIDSI转LVDS桥接芯片的功能及特征 调试文档资料
  • vscode 格式问题
  • OPENCV C++(三)二值化灰度函数+调用摄像头+鼠标响应+肤色检测
  • zabbix简易入门:基本的网络监控、WEB监控
  • 51单片机学习--DS1302可调时钟
  • Matlab统计字符串中共有多少种字符以及每种字符出现次数的功能实现(Matlab R2021a)
  • HTTPS文件传输
  • LOL-v2数据集和VE-LOL数据集的区别
  • RabbitMQ(一) - 基本结构、SpringBoot整合RabbitMQ、工作队列、发布订阅、直接、主题交换机模式
  • 涉及IMU的专业术语
  • 二维数组对角线判断
  • 数据可视化(六)多个子图及seaborn使用
  • opencv-34 图像平滑处理-双边滤波cv2.bilateralFilter()
  • Leetcode 268. Missing Number
  • MybatisPlus实战笔记
  • Android Studio 报错:Failed to create Jar file xxxxx.jar
  • Django实现音乐网站 ⑸
  • 基于VUE3+Layui从头搭建通用后台管理系统(前端篇)七:工作台界面实现
  • 前端vue uni-app自定义精美海报生成组件
  • 高通滤波器,低通滤波器
  • 机器学习深度学习——卷积的多输入多输出通道
  • HTML5中Canvas学习笔记:Canvas
  • Windows安装子系统Linux
  • C 语言的 pow() 函数
  • socket 基础
  • JMeter(二十五)、一些概念的理解---90%响应时间、事务、并发
  • 直播课 | 大橡科技研发总监丁端尘博士“类器官芯片技术在新药研发中的应用”