Преобразование строки даты и времени в местное время в rust chrono

#datetime #parsing #rust

#дата и время #синтаксический анализ #Ржавчина

Вопрос:

Возникли проблемы с простой проблемой. У меня есть строка, которая не включает информацию о часовом поясе, которую мне нужно проанализировать в структуру даты и времени. Я могу получить его как UTC, но не локальный:

 let from = NaiveDateTime::parse_from_str(amp;start_date, "%Y-%m-%dT%H:%M:%S")?;
let from_utc = DateTime::<Utc>::from_utc(from, Utc);
 

Ответ №1:

Вам нужно Local.from_local_datetime() преобразовать a NaiveDateTime в DateTime<Local> :

 let from: NaiveDateTime = start_date.parse().unwrap();
let date_time = Local.from_local_datetime(amp;from).unwrap();
 

По общему признанию, это не так просто найти в документации.

Первая строка, которая у вас есть, также работает нормально. Однако для этого конкретного формата (RFC3339) его проще использовать str::parse() .