You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从String或&str构造chrono_tz的Tz枚举实例?

使用chrono-tz从字符串创建Tz对象及枚举变体用法

一、直接使用自动生成的枚举变体

chrono-tz自动生成的枚举变体(比如Europe__London)可直接作为Tz类型的值使用,命名规则是把IANA时区标识里的/替换为__。示例代码:

use chrono::{DateTime, Utc};
use chrono_tz::Tz;

fn main() {
    // 直接将枚举变体赋值为Tz类型
    let london_tz: Tz = chrono_tz::Europe__London;
    // 把UTC时间转换为伦敦时区时间
    let utc_now = Utc::now();
    let london_now: DateTime<Tz> = utc_now.with_timezone(&london_tz);
    println!("当前伦敦时间: {}", london_now);
}

二、从String或&str创建Tz对象

chrono-tz为Tz实现了FromStr trait,能通过parse方法直接解析标准IANA时区字符串(比如"Europe/London"):

use chrono_tz::Tz;

fn main() {
    // 从&str解析时区
    match "Europe/London".parse::<Tz>() {
        Ok(london_tz) => println!("解析得到时区: {:?}", london_tz),
        Err(err) => eprintln!("解析失败: {}", err),
    }

    // 从String解析时区(String可直接转&str调用parse)
    let shanghai_tz_str = String::from("Asia/Shanghai");
    if let Ok(shanghai_tz) = shanghai_tz_str.parse() {
        println!("上海时区: {:?}", shanghai_tz);
    }
}

内容的提问来源于stack exchange,提问作者user2138149

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 03:27:08