У меня есть строка, которая должна указать дату и время в формате ISO 8601, которая может иметь или не иметь миллисекунд в ней, и я хочу получить структуру < /code> из нее, а также любое миллисекундное значение, которое могло быть указано (что можно было бы предположить, что это не так, что в строке). Правильный формат, а также преобразование определенной пользователя строки в структуру tm и millisecond? /> Как одно последнее предостережение, если это вообще возможно, я бы очень предпочел решение, которое не имеет никакой зависимости от функций, которые находятся только в Boost (но я рад принять C ++ 11 в качестве предпосылки). < /p>
Вход будет выглядеть как -то вроде: < /p>
Код: Выделить всё
2014-11-12T19:12:14.505Z
< /code>
или < /p>
2014-11-12T12:12:14.505-5:00
< /code>
Z
, в данном случае, указывает UTC, но любой часовой пояс можно использовать, и будет выражен как A + или - часы/минуты смещения от GMT. Десятичная часть поля секунд является необязательной, но тот факт, что он вообще может быть вообще, заключается в том, что я не могу просто использовать strptime () или std :: get_time () , которые не описывают какое -либо конкретное определенное поведение, если такой символ найден в части секунды строки.>
Подробнее здесь:
https://stackoverflow.com/questions/268 ... ct-tm-in-c