На SO вопрос 904928 (Python strftime - дата без начального 0?) Райан ответил:
На самом деле у меня была та же проблема, и я понял, что, если вы добавите дефис между% и буквой, вы можете удалить начальный ноль.
Например,% Y/% -m/% -d.
Я столкнулся с той же проблемой, и это было отличное решение, НО, почему это ведет себя так?
>>> import datetime
>>> datetime.datetime(2015, 3, 5).strftime('%d')
'05'
>>> datetime.datetime(2015, 3, 5).strftime('%-d')
'5'
# It also works with a leading space
>>> datetime.datetime(2015, 3, 5).strftime('%e')
' 5'
>>> datetime.datetime(2015, 3, 5).strftime('%-e')
'5'
# Of course other numbers doesn't get stripped
>>> datetime.datetime(2015, 3, 15).strftime('%-e')
'15'
Я не могу найти документацию по этому поводу? → Python DateTime Документы/Python строковые операции
Кажется, что это не работает на машинах с Windows, ну, я не использую Windows, но было бы интересно узнать, почему это не работает?