没有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. 使用 strftimestrptime 函数进行转换:

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

相关推荐
qq_5746562512 分钟前
java后端初始化模版
java·开发语言
韩立学长1 小时前
基于Springboot的影视评论网站的设计与实现58py6238(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 基于JAVA的市级非物质文化遗产交流平台为例,包含答辩的问题和答案
java·开发语言
pedestrian_h2 小时前
操作系统-线程
android·java·开发语言
A-code2 小时前
C/C++ 中 void* 深度解析:从概念到实战
c语言·开发语言·c++·经验分享·嵌入式
JavaTree20174 小时前
SpringMVC基础入门
后端
国服第二切图仔4 小时前
Rust中泛型函数实现不同类型数据的比较
开发语言·后端·rust
Anlici4 小时前
连载小说大学生课设 需求&架构
前端·javascript·后端
我命由我123454 小时前
Derby - Derby 服务器(Derby 概述、Derby 服务器下载与启动、Derby 连接数据库与创建数据表、Derby 数据库操作)
java·运维·服务器·数据库·后端·java-ee·后端框架
技术砖家--Felix4 小时前
Spring Boot入门篇:快速搭建你的第一个Spring Boot应用
java·开发语言·音视频