Firebase Firestore 服务器时间戳与 Python 日期时间?

问题描述 投票:0回答:1

我正在为我的浏览器游戏使用 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)

如果可以的话请告诉我好吗?这会让我很高兴,感谢您阅读我的问题,我希望您能提供帮助!

python firebase datetime google-cloud-firestore firebase-admin
1个回答
0
投票

您将获得

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)
© www.soinside.com 2019 - 2024. All rights reserved.