python - 如何从 Python 中当前本地小时的底部获取纪元?
问题描述
我想根据当前本地时间的底部来获取纪元。
示例: 11:15:23 应产生 11:00:00 的相应纪元
这是我到目前为止所得到的。问题是 2 小时的结果存在时区差异。这里有什么问题,可以简化吗?
import time
import datetime
now = time.time()
print(str(int(now)))
localtime = time.localtime(now)
print(localtime)
epoch = (datetime.datetime(localtime.tm_year, localtime.tm_mon,
localtime.tm_mday,
localtime.tm_hour, 0, 0)
- datetime.datetime(1970, 1, 1)).total_seconds()
print(str(int(epoch)))
localtime = time.localtime(epoch)
print(localtime)
结果就在这里,并且有 2 小时 (tm_hour) 的偏移量不应该存在:
1558430139
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=21, tm_hour=11, tm_min=15, tm_sec=39, tm_wday=1, tm_yday=141, tm_isdst=1)
1558436400
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=21, tm_hour=13, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=141, tm_isdst=1)
请注意,我不想将纪元四舍五入到 3600 秒,因为我怀疑自 1970 年以来存在一些闰秒。但根据我的结果不确定。
解决方案
在对纪元进行了更多研究后,我得出结论,闰秒并没有发挥规律。一个小时的开始始终是纪元中 3600 秒的倍数。因此计算很简单:
now = time.time()
bottomOfHour = int( int(now) / 3600 ) * 3600
推荐阅读
- java - Duration#toDays 和 Duration#toDaysPart 是多余的吗?
- php - 无法在 M1 Mac 上编译 php 模块 apcu
- m3u8 - m3u8 文件的问题 - 单独的音频和视频
- python - ImportError:没有系统模块'pywintypes'(pywintypes38.dll)
- laravel - 使用 vmware 和 bitbucket 存储库出现 500 错误
- python - 快速分组点的方法
- python - 在数组上使用 .join 时删除单引号(Python)
- reactjs - 如何在打字稿中打印反应组件?
- apache - 用于主机名的 Apache HTTP RewriteRule
- python - 如何在我的 Tkinter 程序中限制用户的连接?