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

相关推荐
W.A委员会8 小时前
JS原型链详解
开发语言·javascript·原型模式
止语Lab9 小时前
Go并发编程实战:Channel 还是 Mutex?一个场景驱动的选择框架
开发语言·后端·golang
小码哥_常9 小时前
Spring Boot一键限速:守护你的接口“高速路”
后端
她说彩礼65万9 小时前
C# 实现简单的日志打印
开发语言·javascript·c#
绿浪19849 小时前
c# 中结构体 的定义字符串字段(性能优化)
开发语言·c#
阿丰资源9 小时前
基于SpringBoot的物流信息管理系统设计与实现(附资料)
java·spring boot·后端
杨艺韬9 小时前
Rust编译器原理-第11章 闭包:匿名函数的编译器实现
rust·编译器
杨艺韬9 小时前
Rust编译器原理-第15章 MIR 优化:编译器的中间表示与优化管线
rust·编译器
房开民9 小时前
可变参数模板
java·开发语言·算法
杨艺韬9 小时前
Rust编译器原理-第6章 单态化:泛型的编译期展开
rust·编译器