作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何将字符串转换为 chrono::DateTime或 chrono::NaiveDateTime
ParseError(NotEnough) 或 ParseError(TooShort) 是什么意思?
最佳答案
将 String 转换为 Chrono 对象时,您必须知道字符串的输入格式具有哪些部分。
零件是:日期、时间、时区
例子:
"%Y-%m-%d %H:%M:%S"
:
https://docs.rs/chrono/latest/chrono/format/strftime/index.html
let date_str = "Tue, 1 Jul 2003 10:52:37 +0200";
let datetime = DateTime::parse_from_rfc2822(date_str).unwrap();
RFC3339 = 日期 + 时间 + 时区
let date_str = "2020-04-12T22:10:57+02:00";
// convert the string into DateTime<FixedOffset>
let datetime = DateTime::parse_from_rfc3339(date_str).unwrap();
// convert the string into DateTime<Utc> or other timezone
let datetime_utc = datetime.with_timezone(&Utc);
日期 + 时间 + 时区(其他或非标准)
let date_str = "2020-04-12 22:10:57 +02:00";
let datetime = DateTime::parse_from_str(date_str, "%Y-%m-%d %H:%M:%S %z").unwrap();
日期 + 时间
let date_str = "2020-04-12 22:10:57";
let naive_datetime = NaiveDateTime::parse_from_str(date_str, "%Y-%m-%d %H:%M:%S").unwrap();
日期
let date_str = "2020-04-12";
let naive_date = NaiveDate::parse_from_str(date_str, "%Y-%m-%d").unwrap();
时间
let time_str = "22:10:57";
let naive_time = NaiveTime::parse_from_str(time_str, "%H:%M:%S").unwrap();
添加日期、时间和/或时区
let date_str = "2020-04-12";
// From string to a NaiveDate
let naive_date = NaiveDate::parse_from_str(date_str, "%Y-%m-%d").unwrap();
// Add some default time to convert it into a NaiveDateTime
let naive_datetime: NaiveDateTime = naive_date.and_hms(0,0,0);
// Add a timezone to the object to convert it into a DateTime<UTC>
let datetime_utc = DateTime::<Utc>::from_utc(naive_datetime, Utc);
示例代码游乐场:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=d2b83b3980a5f8fb2e798271766b4541
关于Rust Chrono 解析日期字符串、ParseError(NotEnough) 和 ParseError(TooShort),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61179070/
如何将字符串转换为 chrono::DateTime或 chrono::NaiveDateTime ParseError(NotEnough) 或 ParseError(TooShort) 是什么意思
我是一名优秀的程序员,十分优秀!