如何解决如何将后缀为'Z'的str转换为dateTime结构?
根据此RFC,sent_time
采用ISO 8601 UTC格式。基于该信息,我应该能够docs使用DateTime::parse_from_rfc3339
来将send_time解析为DateTime结构。
但是,使用RFC示例中的send_time的值,我得到了一个错误。这行代码
let dt = DateTime::parse_from_rfc3339("2019-01-15 18:42:01Z").unwrap_err();
产生此输出(如果我println!()它)
`"input contains invalid characters"`
我尝试同时使用DateTime::parse_from_str
和NaiveDateTime::parse_from_str
,它们都返回相同的错误:例如,这行代码
let dt = NaiveDateTime::parse_from_str("2019-01-15 18:42:01Z","%Y-%m-%d %H:%M:%S").unwrap_err();
产生(如果我println!()它)
"trailing input"
我看不到任何有关datetime string formatting的文档,这些文档允许像上面的示例一样进行格式化。也许我错过了阅读。
如果我理解正确的wiki page,则send_time示例为正确格式的日期时间字符串。这看起来准确吗?
如果是这样,如何将其解析为日期时间结构?
Thnx
马特
解决方法
格式为
NaiveDateTime
的 %Y-%m-%d %H:%M:%SZ
有效,请注意,您需要在格式末尾添加文字Z
来匹配您的字符串:
let dt = NaiveDateTime::parse_from_str("2019-01-15 18:42:01Z","%Y-%m-%d %H:%M:%SZ");
println!("{:?}",dt);
// Ok(2019-01-15T18:42:01)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。