基于当前时间戳计算每日零点时间及距零点剩余时长的方法
时间计算需求实现方案
1. 计算当日跳转后的零点时间
实现逻辑:基于当前时间的日期加1天,再将时分秒、微秒全部置为0,即可得到次日零点时间。
示例场景:当前时间为2021-05-16 22:42时,加1天得到日期2021-05-17,置零时间字段后得到目标值2021-05-17 00:00:00。
Python 实现代码:
from datetime import datetime, timedelta # 获取当前本地时间 current_dt = datetime.now() # 计算次日零点 next_midnight = (current_dt + timedelta(days=1)).replace(hour=0, minute=0, second=0, microsecond=0) # 若需输出时间戳格式,调用 timestamp() 方法:next_midnight.timestamp()
2. 计算距离下一个零点的剩余时长
实现逻辑:用计算得到的次日零点时间减去当前时间,得到的时间差即为剩余时长,可按需转换为秒数、时分秒格式等。
Python 实现代码(承接上文变量):
time_delta = next_midnight - current_dt # 获取总剩余秒数 total_remaining_sec = time_delta.total_seconds() # 拆分时分秒格式展示 hours = time_delta.seconds // 3600 minutes = (time_delta.seconds % 3600) // 60 seconds = time_delta.seconds % 60
注意:如果需要计算指定时区的零点,需在初始化时间对象时传入对应的时区参数,避免本地时间和UTC时间的偏差导致日期计算错误
内容的提问来源于stack exchange,提问作者Gaurav
相关产品推荐
相关产品推荐

