Python: форматирование даты, времени

Мне нужно создать локальную метку времени в виде YYYYMMDDHHmmSSOHH'mm '. Это OHH'mm 'является одним из +, -, Z, а затем есть час и минуты, за которыми следует'.

Как мне получить такую ​​временную метку, обозначая как локальный часовой пояс, так и возможную летнее время?

Ответ 1

import time

localtime   = time.localtime()
timeString  = time.strftime("%Y%m%d%H%M%S", localtime)

# is DST in effect?
timezone    = -(time.altzone if localtime.tm_isdst else time.timezone)
timeString += "Z" if timezone == 0 else "+" if timezone > 0 else "-"
timeString += time.strftime("%H'%M'", time.gmtime(abs(timezone)))

Ответ 2

time.strftime сделает для этого

И в linux %z просто даст вам формат -HHMM, если переменная среды правильно установлена.

>>> os.environ['TZ'] = 'EST'
>>> time.strftime('%x %X %z')
'03/21/10 08:16:33 -0500'