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

相关推荐
nbsaas-boot1 小时前
Java 正则表达式白皮书:语法详解、工程实践与常用表达式库
开发语言·python·mysql
chao_7891 小时前
二分查找篇——搜索旋转排序数组【LeetCode】两次二分查找
开发语言·数据结构·python·算法·leetcode
Nejosi_念旧1 小时前
解读 Go 中的 constraints包
后端·golang·go
风无雨2 小时前
GO 启动 简单服务
开发语言·后端·golang
小明的小名叫小明2 小时前
Go从入门到精通(19)-协程(goroutine)与通道(channel)
后端·golang
斯普信专业组2 小时前
Go语言包管理完全指南:从基础到最佳实践
开发语言·后端·golang
我是苏苏3 小时前
C#基础:Winform桌面开发中窗体之间的数据传递
开发语言·c#
一只叫煤球的猫3 小时前
【🤣离谱整活】我写了一篇程序员掉进 Java 异世界的短篇小说
java·后端·程序员
斐波娜娜4 小时前
Maven详解
java·开发语言·maven
小码氓4 小时前
Java填充Word模板
java·开发语言·spring·word