В формате, который мне дано, дата 2014-01-02 будет представлена "20140102". Это правильно проанализировано стандартным strptime:
>>> datetime.datetime.strptime("20140102", "%Y%m%d")
datetime.datetime(2014, 1, 2, 0, 0)
В этом формате "201412" не будет действительной датой. docs говорят, что директива "% m" - "месяц как десятичное число с нулевым запасом". Он дает в качестве примеров "01, 02,..., 12". Директива дней "% d" также должна быть нулевой.
Исходя из этого, я ожидал, что "201412" будет недопустимым вводом этого формата, поэтому повысит значение ValueError. Вместо этого он интерпретируется как 2014-01-02:
>>> datetime.datetime.strptime("201412", "%Y%m%d")
datetime.datetime(2014, 1, 2, 0, 0)
Вопрос в том, есть ли способ указать "нет серьёзного нуля"? Или я не понимаю термин "нуль-padded" в этом контексте?
Обратите внимание, что вопрос заключается не в том, как разбирать даты в этом формате, а о понимании поведения strptime.