Мне нужно время чтения с ISO расширенным форматом, и преобразовать его в время UTC, как Date
объектов в JavaScript сделать:повышение :: LOCAL_TIME Не читает правильно iso_extended_format
новой Дата ("2014-12-19T15 : 53: 14,533 + 01: 00")
2014-12-19T14: 53: 14.533Z
В наддува, нет boost::posix_time::from_iso_extended_string
и boost::posix_time::from_iso_string
не анализирует часовых поясов. Я пытаюсь использовать boost::local_time::local_date_time
но мне кажется, что это тоже не работают:
std::stringstream ss("2014-12-19T15:53:14.533+01:00");
boost::local_time::local_time_input_facet*
ifc= new boost::local_time::local_time_input_facet();
ifc->set_iso_extended_format();
ss.imbue(std::locale(ss.getloc(), ifc));
boost::local_time::local_date_time
zonetime(boost::local_time::not_a_date_time);
if(ss >> zonetime) {
time = zonetime.utc_time();
}
Любая помощь или предложения?
Благодарности. он работает. Часовой пояс POSIX отличается тем, что у них есть секунды, но я думаю, что никто не будет использовать несколько минут. Пожалуйста, измените строку времени на «2014-12-19T15: 53: 14.533-07: 00», вот что я прошу. – Arpegius
@Arpegius TBH, единственная причина, по которой я могу понять, почему это просто не реализовано: очевидно, что все поддерживают обмен данными по времени UTC в пути (и при необходимости пропускают часовой пояс вне диапазона) – sehe
Возможно, вы правы, но это хорошо. а затем просто проверьте символ «Z» в строке. – Arpegius