如何将指定时段EPOCH时间调整至当日午夜?Python代码修改需求
问题与解决方案
问题1:如何将特定日期时间的EPOCH时间转换为当日午夜的EPOCH时间?
核心思路是先把EPOCH时间转成datetime对象,再将该对象的时分秒、微秒重置为0,最后转回EPOCH时间即可。示例代码如下:
import datetime as dt # 假设待转换的特定时间EPOCH值 target_epoch = 1663228800.0 # 对应2022/09/15 16:00 # 转换为datetime对象(默认用本地时区,需UTC可改用utcfromtimestamp) dt_obj = dt.datetime.fromtimestamp(target_epoch) # 重置为当日午夜 midnight_dt = dt_obj.replace(hour=0, minute=0, second=0, microsecond=0) # 转回EPOCH时间 midnight_epoch = midnight_dt.timestamp() print(midnight_epoch) # 输出:1663171200.0,对应2022/09/15 00:00
如果已经持有datetime对象而非EPOCH值,直接调用replace方法重置时间部分即可。
问题2:修改Python代码生成2022/09/15 00:00至2022/09/16 00:00的EPOCH值
原代码中第二个值减1是为了获取2022/09/16 15:59:59的EPOCH值,而你需要的是次日00:00的EPOCH值,只需去掉减1操作即可。修改后的代码如下:
import datetime as dt # 直接获取两天午夜的EPOCH时间 result = (dt.datetime(2022, 9, 15).timestamp(), dt.datetime(2022, 9, 16).timestamp()) print(result)
输出结果为:(1663171200.0, 1663257600.0),正好对应2022/09/15 00:00至2022/09/16 00:00的EPOCH值。
内容的提问来源于stack exchange,提问作者Patrick_Chong
相关产品推荐
相关产品推荐

