$ python --version
Python 2.7.12
Lorsque j'ai essayé de comparer l'heure de la carte obtenue par l'API de Trello avec l'heure actuelle, j'ai eu une erreur lorsque j'ai écrit le code suivant et que j'en ai été accro.
def show_cards_(cards):
for c in cards:
print("---------------")
print("card id : {id}".format(id=c.id))
print("card name : {name}".format(name=c.name))
if c.due is not None:
due = c.due_date
now = dt.now()
print("C'est passé" if now > due else "Ça va toujours")
Lorsque j'ai exécuté ce code, j'ai eu l'erreur suivante:
TypeError: can't compare offset-naive and offset-aware datetimes
Il semble que dû et maintenant ne puissent pas être comparés car ils sont respectivement différents pour le décalage natif et pour le décalage.
En regardant de près le contenu, cela ressemblait à ceci.
2017-01-03 10:00:00+00:00 #dû: offset-aware
2017-01-03 22:40:14.709333 #maintenant: offset-native
C'était l'heure utc sensible au décalage que trello a renvoyée.
En python, il semble qu'il sera comparé selon l'un ou l'autre.
Ne mélangez pas «offset-native» et «offset-aware».
Je m'en fichais du tout jusqu'à présent, mais il semble que pytz
et python-dateutil
prendront soin de moi dans de tels moments.
>>> from datetime import datetime as dt
>>> print(dt.now())
2017-01-03 22:45:07.334307+09:00
Dans la plupart des cas, c'est ok
>>> from datetime import datetime as dt
>>> import dateutil.tz
>>> print(dt.now(dateutil.tz.tzlocal()))
2017-01-03 22:47:27.712684+09:00
Vous pouvez fixer le fuseau horaire sur ```Asia / Tokyo``, mais Le fuseau horaire local du système avait l'air cool, alors je l'ai essayé.
>>> from datetime import datetime as dt
>>> import pytz
>>> now_utc = dt.now(pytz.utc)
>>> print(now_utc)
2017-01-03 14:07:54.861061+00:00
Si vous passez le fuseau horaire en tant que variable à l'habituel `` dt.now () '', cela ressemble à ok.
↓ et
UTC → JST
>>> print(dt.now(pytz.utc).astimezone(pytz.timezone("Asia/Tokyo")))
2017-01-03 23:05:53.765549+09:00
Accueil! Accueil! Polkadot Stingray et DAOKO sont les meilleurs!
Recommended Posts