gpt4 book ai didi

python - 使用python获取从昨天0000小时到今天0000小时的unix时间

转载 作者:行者123 更新时间:2023-12-03 19:58:17 27 4
gpt4 key购买 nike

我需要获取以下值

Today = 6th Feb
time 1 = 5th Feb 0000 hrs
time 2 = 6th Feb 0000 hrs.

所以我有 24 小时的纪元时间。引用是今天而不是现在()

到目前为止我有这个。

yesterday = datetime.date.today() - datetime.timedelta(days=1)
epoch_yesterday = time.mktime(yesterday.timetuple())
epoch_today = time.mktime(datetime.date.today().timetuple())

两个 epoch_ 值实际上都是从 now() 返回秒数,比如 1600 小时(取决于我运行脚本的时间)而不是从 0000/2400 小时。我知道最好先获取昨天的纪元时间,然后再添加 24 小时以获得结束日期。但我需要做好第一部分:),也许我需要 sleep ?

附注抱歉代码样式不起作用,所以不允许我发布代码样式并且让 SO 发布这个非常令人沮丧。

最佳答案

更简单的方法可能是这样显式地构造日期:

now = datetime.now()
previous_midnight = datetime.datetime( now.year, now.month, now.day )

这会为您提供刚刚过去的午夜的时间戳。如您所知,time.mktime 将为您提供纪元值。只需加上或减去 24 * 60 * 60 即可从那里得到上一个或下一个午夜。

哦!请注意,纪元值将从 1970 年 1 月 1 日 UTC 午夜算起。如果您需要从您所在时区的午夜算起的秒数,请记得进行相应调整!

更新:测试代码,在太平洋标准时间下午 1 点之前从 shell 执行:

>>> from datetime import datetime
>>> import time
>>> time_now = datetime.now()
>>> time_at_start_of_today_local = datetime( n.year, n.month, n.day )
>>> epochal_time_now = time.mktime( time_now.timetuple() )
>>> epochal_time_at_start_of_today_local = time.mktime( time_at_start_of_today.timetuple() )
>>> hours_since_start_of_day_today = (epochal_time_at_start_of_today_local - epochal_time_now) / 60 / 60
12.975833333333332

注意:time_at_start_of_today_local 是从 1970 年 1 月 1 日午夜到您所在时区当天开始之间的秒数。如果您想要以 UTC 表示的当天开始的秒数,请从 time_at_start_of_today_local 中减去您的时区:

>>> time_at_start_of_today_utc = time_at_start_of_today_local - time.timezone

请注意,您在这里进入了一个奇怪的领域,特别是您关心谁的日子?如果当前是您所在时区的星期二,但在 UTC 中仍然是星期一,您认为今天的午夜是哪个午夜?

关于python - 使用python获取从昨天0000小时到今天0000小时的unix时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9152370/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com