存储python datetime时间戳,以便以后可以查询该日期的所有事件
所以我已经阅读了每一份文件,所以我能找到的问题已经有两天了,但我还没有弄明白。我遇到的问题似乎很简单,但我根本无法很好地理解问题的答案 我在Heroku上建立了一个网站。它是装在烧瓶里的。 当有人进行购买时,my postgress db中的customer对象将使用不带时区表的时间戳进行时间戳。为此,我使用:存储python datetime时间戳,以便以后可以查询该日期的所有事件,python,python-3.x,flask,flask-sqlalchemy,Python,Python 3.x,Flask,Flask Sqlalchemy,所以我已经阅读了每一份文件,所以我能找到的问题已经有两天了,但我还没有弄明白。我遇到的问题似乎很简单,但我根本无法很好地理解问题的答案 我在Heroku上建立了一个网站。它是装在烧瓶里的。 当有人进行购买时,my postgress db中的customer对象将使用不带时区表的时间戳进行时间戳。为此,我使用: now=datetime.now() 这设置了一个在本地机器上测试时可以使用的时间,但现在由于我的servertime在UTC时间关闭了7个小时而关闭。 我看到的问题是,如果我将时间戳
now=datetime.now()
这设置了一个在本地机器上测试时可以使用的时间,但现在由于我的servertime在UTC时间关闭了7个小时而关闭。
我看到的问题是,如果我将时间戳存储为:
now=datetime.utcnow()
数据库中存储的时间仍然是UTC时间,我不明白如何查询今天发生的所有事务。
目前,我使用的过滤器>=今天,并尝试使用以下过滤器:
from datetime import datetime
import pytz
import tzlocal
def get_stamp()->float:
return datetime.timestamp(datetime.now())
def stamp_to_utc(stamp:float)->datetime:
naive_local = datetime.fromtimestamp(stamp)
local_tz = pytz.timezone(tzlocal.get_localzone().zone)
return local_tz.localize(naive_local).astimezone(pytz.utc)
def utc_to_tz(utc_dt, tz_name)->datetime:
return utc_dt.astimezone(pytz.timezone(tz_name))
def main():
stamp = get_stamp() # store this in db
stamp_dt_utc = stamp_to_utc(stamp)
print(stamp_dt_utc)
stamp_dt_arizona = utc_to_tz(stamp_dt_utc, "US/Arizona")
print(stamp_dt_arizona)
if __name__ == "__main__":
main()
我很抱歉,但我仍然不明白这些将如何解决我的问题?当我存储事件时,我需要将时间戳设置为亚利桑那时间,而不是服务器所在地的本地时间。在数据库中存储为float,从数据库读取时将其转换为UTC,在您已经是UTC之后转换为所需的tz,否则转换将不准确。编程中的时间戳通常是基于UTC的,您可能需要阅读有关此主题的更多信息。