我正在为我的浏览器游戏使用 python admin sdk...但我遇到了一些问题...
我使用时间戳来跟踪游戏中创建某些内容的时间,方法是使用库附带的默认时间戳,如下所示
from firebase_admin import firestore, credentials as _cred
# setup client here
firestore.SERVER_TIMESTAMP
但可以说我想将其与正常的日期时间进行比较,如下所示
>>> import datetime
>>> o = datetime.datetime.now()
>>> type(o)
<class 'datetime.datetime'>
>>> userDict = db.collection("users").document("test").get().to_dict()
>>> type(userDict['creation_time'])
<class 'google.api_core.datetime_helpers.DatetimeWithNanoseconds'>
>>> userDict['creation_time']-datetime.datetime.now()
TypeError: can't subtract offset-naive and offset-aware datetimes
有什么方法可以将两者相减以获得像这样的正常日期时间吗?
>>> o - datetime.datetime.now()
datetime.timedelta(days=-1, seconds=86381, microseconds=61146)
如果可以的话请告诉我好吗?这会让我很高兴,感谢您阅读我的问题,我希望您能提供帮助!
您将获得
TypeError: can't subtract offset-naive and offset-aware datetimes
并且 datetime.datetime.now()
返回时区原始日期时间。这似乎是问题所在。因此,您可以尝试使用时区感知日期时间进行减法,如下所示:
from datetime import timezone, datetime
userDict['creation_time'] - datetime.now(tz=timezone.utc)