Я обнаружил странную причуду в тонкой версии изображения python Docker относительно форматирования даты. Если вы передадите ей дату первого столетия, форматирование %Y-%m-%d
не приведет к получению годовой части с добавлением нуля:
$ docker run -ti python:3.7-slim /bin/bash
root@71f21d562837:/# python
Python 3.7.5 (default, Nov 23 2019, 06:10:46)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from datetime import date
>>> d = date(197,1,1)
>>> d.strftime('%Y-%m-%d')
'197-01-01'
Но локальный запуск этой же версии python на моем MacBook введите 4 цифры за год:
$ python
Python 3.7.5 (default, Nov 1 2019, 02:16:32)
[Clang 11.0.0 (clang-1100.0.33.8)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from datetime import date
>>> d = date(197,1,1)
>>> d.strftime('%Y-%m-%d')
'0197-01-01'
В Python документах предполагается, что %y
не должно давать нулевого заполнения, тогда как %Y
должно.
То же причуда для версии 3.6-slim. Проблема в том, что в некоторых системах (например, BigQuery) требуется заполнение нулями.
Что может быть самым элегантным / наименее хакерским обходным путем? Я создаю собственное изображение, полученное из python: 3.7-slim. Я открыт для использования другого изображения с небольшим размером или для элегантного изменения кода.