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

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

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

1. 使用 chrono 库进行转换:

bash 复制代码
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. 使用 strftime 和 strptime 函数进行转换:

bash 复制代码
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 库进行序列化和反序列化:

bash 复制代码
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. 使用自定义格式化和解析函数进行转换:

bash 复制代码
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 库进行转换:

bash 复制代码
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不迷路!!

相关推荐
一水鉴天3 小时前
映射、哈希表与哈斯图:计算机科学的三种基线 20261003(元宝)
开发语言·人工智能
Frank_refuel3 小时前
C++11之一场名为“搬家”的 C++ 之旅
开发语言·c++
Wang's Blog4 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
2601_962071574 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
卷无止境5 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
\光辉岁月/5 小时前
5.java-数组
java·开发语言
Java后端的Ai之路5 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数
谢亮_vipxieliang6 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
时间的拾荒人6 小时前
Qt 多线程详解:从 QThread 到实战
开发语言·qt·面试
狼爷6 小时前
从零用 Java 构建 AI Agent 框架:JavaManus 设计与实现深度解析
后端·langchain·aigc