2015-06-29 7 views
7

У меня есть дата в следующем формате: "2014-03-10 11:20:34.3454". Как я могу проанализировать эту дату?Как разобрать дату с миллисекундами?

chrono doc упоминает парсинг год, месяц, ..., минуты и секунды. Нет миллисекунд. Также, когда я снова смотрю на rust-datetime - без миллисекунд.

С другой стороны, я могу создать DateTime вот так UTC.ymd(2014, 11, 28).and_hms_milli(7, 8, 9, 10). Так Rust знает миллисекунды ...

+0

Похоже, вы не повезло :(Быстрый запрос авторов может получить добавил он ^^ –

+0

Хорошо, что это лучший способ, как связаться с авторами, пожалуйста – stej

+0

Открыть вопрос на GitHub, я бы предположить. –

ответ

4
extern crate time; 

fn main() { 
    match time::strptime("2014-03-10 11:20:34.3454", 
         "%Y-%m-%d %H:%M:%S.%f") 
    { 
     Ok(v) => println!("{}", time::strftime("%Y/%m/%d %H:%M:%S.%f", 
               &v).unwrap()), 
     Err(e) => println!("Error: {}", e), 
    }; 
} 

Выход:

2014/03/10 11:20:34.345400000 

strptime() и strftime() весьма полезны при использовании значения времени. Кроме того, они, как правило, работают на большинстве языков, поэтому изучение его когда-то хорошо уживается.

+2

это приятно, вам нужно прыгать через обручи, чтобы получить миллисекунды на C++. Я хочу, чтобы ржавчина была 30 лет. – nurettin

+0

Как «в стороне», «% F% T» '- это кратчайший пробел для' '% Y-% m-% d% H:% M:% S" '. Также описание '% D' всегда достойно хихикания. http://man7.org/linux/man-pages/man3/strftime.3.html – Synesso