Python开发抽奖命令:计算未来时间并获取时间戳问题求助
问题原因
你遇到的1970年日期问题,核心是对time.gmtime()的参数理解错误:
time.gmtime()接收的参数是从1970年1月1日00:00:00 UTC(Unix时间起点)开始累计的秒数,你传入的2*60=120秒,对应的就是起点后2分钟,自然是1970年的日期。- 你没有获取当前时间的时间戳,也没把抽奖时长转换成正确的秒数后加到当前时间上。
正确实现代码
要计算当前时间+抽奖时长后的未来时间及时间戳,正确步骤如下:
import time # 设置抽奖持续时长(单位:小时) giveaway_hours = 2 # 1. 获取当前时间的Unix时间戳(从epoch开始的秒数) current_ts = time.time() # 2. 把时长转换成秒,计算未来时间戳 future_ts = current_ts + giveaway_hours * 3600 # 3. 将未来时间戳转换成可读的时间对象(UTC时区) future_time = time.gmtime(future_ts) # 若需要本地时区,替换为time.localtime(future_ts) # 输出结果 print("未来时间对象:", future_time) print("未来时间戳:", future_ts)
可选:格式化输出时间
如果需要更友好的时间格式,用time.strftime():
# 格式化UTC时间为"年-月-日 时:分:秒"格式 formatted_utc_time = time.strftime("%Y-%m-%d %H:%M:%S", future_time) print("抽奖结束时间(UTC):", formatted_utc_time)
内容的提问来源于stack exchange,提问作者Filip craqow
相关产品推荐
相关产品推荐

