/ / Използвайки модула за дата на Python, мога ли да получа годината, в която в момента се намира UTC-11? - python, django, datetime, timezone, utc

Използвайки модула за дата и време на Python, мога ли да намеря годината, в която понастоящем се намира UTC-11? - python, django, datetime, timezone, utc

Искам да си намеря годината, в която се намира часовата зона UTC-11 (последната часова зона за навлизане в новата година), но не съм сигурен как да го направя.

Имам достъп до pytz библиотеката, както и новият Django timezone модул и използвам UTC часови зони, които са наясно с часова зона.

Отговори:

5 за отговор № 1

Най-лесно би било да пропуснете изцяло обработката на часова зона и просто да я използвате timedelta(hours=11) да се извади от datetime и погледнете year атрибут.

>>> (datetime.datetime.utcnow() - datetime.timedelta(hours=11)).year
2012

2 за отговор № 2

Всъщност часовите зони са малко по-трудни от това ... Може да имате часови зони със същия компенсиращ ефект, но с различни настройки, когато става въпрос за дати за пестене на енергия и такива (или дори по-гадно поведение: https://stackoverflow.com/a/6841479/289011)

Мисля, че за този конкретен случай може да сте по-добре с:

>>> "%s" % (datetime.datetime.utcnow() - datetime.timedelta(hours=11))
"2012-12-26 00:25:30.029864"

Само за годината:

>>> "%s" % (datetime.datetime.utcnow() - datetime.timedelta(hours=11)).year
"2012"

Редактиране: Да, и е добра идея да го използвате datetime.utcnow(), не datetime.now()... (моя грешка)