Спецификация для strptime
:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/strptime.html
в основном ясна в отношении возможных спецификаций преобразования и того, какой ввод они требуют.Тем не менее, похоже, что нет никакой спецификации для того, как эта функция сохраняет результаты в struct tm
.Что должно произойти, если несколько спецификаторов читают частично или полностью противоречивые данные.Простым примером может быть наличие %m
и %b
(или даже дубликатов %m
) чтения конфликтующих месяцев, но, возможно, более интересный пример - когда %d
(день месяца) и %a
(день недели) конфликт.Который имеет приоритет?strptime
вообще должен обеспечивать согласованный вывод в struct tm
или просто хранить поля как прочитанные?Некоторые вещи, такие как %W
(неделя года) не имеют прямого представления в struct tm
, поэтому я предполагаю, что они должны привести к генерации производного вывода на основе других полей, но неясно, когда это применимо.
Я понимаю, что поскольку спецификации, похоже, не хватает, возможно, я спрашиваю ответ, которого просто не существует, но вещи, которые могли бы характеризовать полезный ответ, были бы:
- поведение исторических реализаций нана которой базировалась стандартизированная функция.
- ссылки на соответствующие сообщения о дефектах
- ссылки на прошлые обсуждения темы (списки рассылки, средства отслеживания ошибок, usenet и т. д.)
- другоесоответствующие стандарты для разбора времени