Rust chrono дает ParseError(NotEnough)

Я пытаюсь разобрать строку даты и времени, чтобы DateTime объект, но когда я пытаюсь это, я получаю этот ParseError. Я не понимаю, что происходит, кто-нибудь может мне помочь?

строка даты и времени: 09-January-2018 12:00:00

код: let date = DateTime::parse_from_str(date.trim(), "%d-%B-%Y %T");

1 ответ

Решение

Это:

extern crate chrono;
use chrono::DateTime;
use std::error::Error;

fn main() {
    println!("{:?}", DateTime::parse_from_str("09-January-2018 12:00:00", "%d-%B-%Y %T").unwrap_err().description());
}

( https://play.rust-lang.org/?gist=9c0231ea189c589009a46308864dd9bc&version=stable)

дает больше информации:

"input is not enough for unique date and time"

По-видимому, DateTime нужна информация о часовом поясе, которую вы не предоставляете при вводе. С помощью NaiveDateTime должно сработать:

extern crate chrono;
use chrono::NaiveDateTime;

fn main() {
    println!("{:?}", NaiveDateTime::parse_from_str("09-January-2018 12:00:00", "%d-%B-%Y %T"));
}

( https://play.rust-lang.org/?gist=1acbae616c7f084a748e4f9cfaf1ef7f&version=stable)

Другие вопросы по тегам