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