当前位置: 首页 > news >正文

rust时间格式

Rust 中处理时间格式化主要用chrono(最流行)和time两个库。标准库std::time只提供时间戳,没有格式化能力。


一、chrono(推荐)

rust

use chrono::{Local, Utc, NaiveDateTime, DateTime}; fn main() { // 1. 当前时间格式化 let now = Local::now(); println!("{}", now.format("%Y-%m-%d %H:%M:%S")); // 2026-08-10 11:57:30 println!("{}", now.format("%Y年%m月%d日")); // 2026年08月10日 println!("{}", now.format("%a, %d %b %Y %H:%M:%S %z")); // Mon, 10 Aug 2026 11:57:30 +0800 println!("{}", now.format("%+")); // RFC3339 格式 println!("{}", now.to_rfc3339()); // 同上 println!("{}", now.to_rfc2822()); // RFC2822 格式 // 2. UTC 时间 let utc = Utc::now(); println!("{}", utc.format("%Y-%m-%d %H:%M:%S UTC")); // 3. 字符串解析为时间 let dt = NaiveDateTime::parse_from_str( "2026-08-10 11:57:00", "%Y-%m-%d %H:%M:%S" ).unwrap(); println!("{}", dt); // 4. 自定义时区解析 let dt: DateTime<Utc> = "2026-08-10T11:57:00Z".parse().unwrap(); }

Cargo.toml:

toml

[dependencies] chrono = "0.4"

二、time crate(0.3+ 版本)

rust

use time::{OffsetDateTime, format_description}; fn main() { let now = OffsetDateTime::now_utc(); // 1. 使用预定义格式 println!("{}", now.format(&time::format_description::well_known::Rfc3339).unwrap()); // 2. 自定义格式 let fmt = format_description::parse("[year]-[month]-[day] [hour]:[minute]:[second]").unwrap(); println!("{}", now.format(&fmt).unwrap()); // 2026-08-10 11:57:30 // 3. 解析 let parsed = OffsetDateTime::parse("2026-08-10T11:57:00Z", &time::format_description::well_known::Rfc3339).unwrap(); }

Cargo.toml:

toml

[dependencies] time = { version = "0.3", features = ["formatting", "parsing"] }

三、常用格式说明符(chrono)

表格

说明符含义示例
%Y四位年份2026
%m月份(01-12)08
%d日期(01-31)10
%H小时(00-23)11
%M分钟(00-59)57
%S秒(00-59)30
%f微秒(6位)123456
%.3f毫秒(3位)123
%z时区偏移+0800
%Z时区名称CST
%a星期缩写Mon
%A星期全称Monday
%b月份缩写Aug
%B月份全称August
%sUnix 时间戳1723260420

四、标准库(仅时间戳,无格式化)

rust

use std::time::{SystemTime, UNIX_EPOCH}; fn main() { let now = SystemTime::now(); let since_epoch = now.duration_since(UNIX_EPOCH).unwrap(); println!("{}", since_epoch.as_secs()); // 1723260420 }

选型建议

表格

场景推荐
一般日期时间处理chrono
需要零依赖/更轻量time
只需要时间戳计算标准库std::time

chrono生态最成熟,文档和示例最多,新手首选。

http://www.jsqmd.com/news/1367766/

相关文章:

  • 10分钟实现Koa-logger:打造自己的请求日志中间件
  • 开源AI助手OpenClaw/Clawbot部署与优化指南
  • 沧州CMA甲醛检测公司公共卫生检测如何选:安鑫甲醛检测实验室 - CMA甲醛检测中心
  • Parasail Node Bot错误处理机制详解:从API重试到优雅关闭的7个技巧
  • 提升Stasis开发效率:忽略规则与优先级设置终极指南
  • Windows更新服务反复停止、更新打不开?用软领驱动大师定位组件问题,4种方法彻底重启Windows Update
  • 茶香香薰推荐 - 香氛评价员
  • 2026年7步评估GEO优化服务商,选型不再踩坑 - 花开富贵112
  • qgis2web开发者指南:贡献代码与扩展插件功能详解
  • 5分钟上手python-shortcuts:从安装到创建第一个Siri快捷指令
  • 2026吉安卫生间漏水避坑指南 - 伶鹿到家
  • NapCatQQ版本升级终极指南:从旧版本平稳迁移到新版本的完整教程
  • through实战案例:5分钟实现高效数据处理流
  • Python开发者必备:python-shortcuts让Siri快捷指令开发效率提升10倍
  • 2026黄冈卫生间漏水避坑指南 - 伶鹿到家
  • 如何使用stm32f4xx-hal实现STM32F469I-DISCO的LCD显示与触摸功能
  • Multi-Agent Custom Automation Engine Solution Accelerator安全最佳实践:保护你的AI自动化系统
  • 推荐一下青岛非复合膜袋生产厂商 - 品牌推广大师
  • Spring Boot 3.4 接入 Claude 4.5:200万Token长上下文下的工程...
  • 2026 鄂城房屋漏水修缮实地体验,四家本地防水服务商实测全过程 - 用户198513
  • vim-qf用户指南:从基础操作到高级过滤的全面教学
  • 2026大连卫生间漏水避坑指南 - 伶鹿到家
  • 2026马鞍山卫生间漏水避坑指南 - 伶鹿到家
  • 深度剖析micropython-mqtt源码:异步通信与断线恢复的实现原理
  • DIVERSE验证器训练指南:用DeBERTa模型实现推理链评估,附完整参数配置
  • Decluttarr高级配置:如何通过正则表达式精准过滤需要保留的下载项
  • 常德CMA甲醛检测公司公共卫生检测如何选:安鑫甲醛检测实验室 - CMA甲醛检测中心
  • 企业香氛礼盒定制公司推荐 - 香氛评价员
  • Rinvex Repository高级技巧:自定义实现与多数据源支持
  • 2026年武汉美国留学机构哪家好?武汉新东方前途出国的美国方向全案服务体系深度拆解 - 科技焦点