Я пытаюсь сериализовать datetime в API, но мне не нужны миллисекунды. То, что я хочу здесь: https://en.wikipedia.org/wiki/ISO_8601 - "2015-09-14T17:51:31+00:00"
Печать даты и времени в формате ISO без миллисекунд
tz = pytz.timezone('Asia/Taipei')
dt = datetime.datetime.now()
loc_dt = tz.localize(dt)
Попробуйте A:
loc_dt.isoformat()
>> '2015-09-17T10:46:15.767000+08:00'
Try B:
loc_dt.strftime("%Y-%m-%dT%H:%M:%S%z")
>> '2015-09-17T10:46:15+0800'
Последнее один почти идеально, за исключением, что это отсутствует двоеточие в часовом поясе часть. Как я могу решить эту проблему без строковой манипуляции (удаление миллисекунд или добавление двоеточия)?
Я бы предпочел форматной строки решение, потому что это то, что я могу легко хлопнуть в к сериализатору. Однако я не вижу ничего полезного на строковой странице формата strftime. –
ISO8601 допускает использование вторых фрагментов. Попробуйте удалить фрагмент перед форматированием строки –
несвязанный: код может завершиться неудачно во время переходов DST, вместо этого используйте 'loc_dt = datetime.now (tz)'. – jfs