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

没有jodatime,rust里怎么将字符串转为日期呢?

关注我,学习Rust不迷路!!

在 Rust 中,有多种方法可以在时间和字符串之间进行转换。以下是五种常见的方式:

1. 使用 chrono 库进行转换:

use chrono::{NaiveDateTime, DateTime, Utc, TimeZone};fn main() {// 字符串转时间let datetime_str = "2022-01-01T12:00:00Z";let datetime: DateTime<Utc> = datetime_str.parse().unwrap();// 时间转字符串let datetime: DateTime<Utc> = Utc::now();let datetime_str = datetime.to_rfc3339();println!("时间转字符串:{}", datetime_str);println!("字符串转时间:{}", datetime);
}

2. 使用 strftimestrptime 函数进行转换:

use std::time::SystemTime;
use time::strftime;
use time::strptime;fn main() {// 时间转字符串let current_time = SystemTime::now();let datetime_str = strftime("%Y-%m-%d %H:%M:%S", &current_time).unwrap();// 字符串转时间let datetime_str = "2022-01-01 12:00:00";let datetime = strptime(datetime_str, "%Y-%m-%d %H:%M:%S").unwrap();println!("时间转字符串:{}", datetime_str);println!("字符串转时间:{}", datetime);
}

3. 使用 serde 库进行序列化和反序列化:

use chrono::{DateTime, Utc};use serde::{Serialize, Deserialize};
fn main() {// 时间转字符串let datetime: DateTime<Utc> = Utc::now();let datetime_str = serde_json::to_string(&datetime).unwrap();// 字符串转时间let datetime_str = r#""2022-01-01T12:00:00Z""#;let datetime: DateTime<Utc> = serde_json::from_str(datetime_str).unwrap();println!("时间转字符串:{}", datetime_str);println!("字符串转时间:{}", datetime);
}

4. 使用自定义格式化和解析函数进行转换:

use chrono::{DateTime, Utc};fn main() {// 时间转字符串let datetime: DateTime<Utc> = Utc::now();let datetime_str = datetime.format("%Y-%m-%d %H:%M:%S").to_string();// 字符串转时间let datetime_str = "2022-01-01 12:00:00";let datetime = DateTime::parse_from_str(datetime_str, "%Y-%m-%d %H:%M:%S").unwrap();println!("时间转字符串:{}", datetime_str);println!("字符串转时间:{}", datetime);
}

5. 使用 time 库进行转换:

use chrono::prelude::*;fn main() {// 字符串转时间let datetime_str = "2022-01-01 12:00:00";let datetime = NaiveDateTime::parse_from_str(datetime_str, "%Y-%m-%d %H:%M:%S").unwrap();// 时间转字符串let datetime = Local::now();let datetime_str = datetime.format("%Y-%m-%d %H:%M:%S").to_string();println!("时间转字符串:{}", datetime_str);println!("字符串转时间:{}", datetime);
}

关注我,学习Rust不迷路!!

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

相关文章:

  • 【Markdown入门及使用】
  • 大数据面试题:HBase的读写缓存
  • springboot基于vue的高校迎新系统的设计与实现8jf9e
  • JVM入门到精通
  • Hive执行引擎的区别
  • 分布式 - 服务器Nginx:常见问题总结(二)
  • 【Paper Reading】CenterNet:Keypoint Triplets for Object Detection
  • 【BASH】回顾与知识点梳理(三)
  • C#设计模式之---单例模式
  • Git工具安装
  • 深度学习——注意力机制、自注意力机制
  • STM32入门学习之定时器中断
  • 基本数据类型与包装数据类型的使用标准
  • 小研究 - 基于 SpringBoot 微服务架构下前后端分离的 MVVM 模型(二)
  • ArmSoM-W3之RK3588安装Qt+opencv+采集摄像头画面
  • 基于长短期神经网络的风速预测,基于LSTM的风速预测
  • Mybatis引出的一系列问题-spring多数据源配置
  • Vue-组件二次封装
  • [C++]02.选择结构与循环结构
  • C语言案例 按序输出多个整数-03
  • 如何获取vivado IP列表
  • 计算机网络的定义和分类
  • 【css】超过文本显示省略号
  • Java 8 中使用 Stream 遍历树形结构
  • 网络安全防火墙体验实验
  • YOLOv5引入FasterNet主干网络,目标检测速度提升明显
  • SpringBoot运行时注入一个Bean
  • Pyspark
  • Spring Boot 项目五维度九层次分层架构实现实践研究——持续更新中
  • stm32常见数据类型