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

相关推荐
韩立学长8 分钟前
基于Springboot酒店管理系统的设计与实现c12044zy(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
han_hanker9 分钟前
统一拦截异常 @RestControllerAdvice
java·开发语言·数据库
liu****11 分钟前
一.脚手架介绍以及部分工具使用
开发语言·数据结构·c++·手脚架开发
资深web全栈开发19 分钟前
深入理解 Google Wire:Go 语言的编译时依赖注入框架
开发语言·后端·golang
忘记92624 分钟前
什么是spring boot
java·spring boot·后端
ohoy25 分钟前
EasyPoi 数据脱敏
开发语言·python·excel
Hello World呀26 分钟前
Java实现手机号和身份证号脱敏工具类
java·开发语言
expect7g26 分钟前
Paimon源码解读 -- Compaction-6.CompactStrategy
大数据·后端·flink
曹牧28 分钟前
Java:serialVersionUID
java·开发语言
喵个咪41 分钟前
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:极速搭建微服务应用
后端·微服务·go