为了账号安全,请及时绑定邮箱和手机立即绑定

需要帮助从纪元时间剥离微秒

需要帮助从纪元时间剥离微秒

繁华开满天机 2021-12-26 10:38:16
我有一个 API,我必须向它发送纪元时间开始和结束日期。唯一的问题是它不接受微秒。我使用 datatime 构建了一个时间函数,但是它计算微秒。我尝试了 .replace(microsecond=0),但这只会在 Epoch 上留下 .0,这是我的 API 抱怨的。我也尝试导出到 strptime,但是我的 .timestamp 函数无法将其解析为字符串。timestart = datetime.now() - timedelta(hours = 24)timeend = datetime.now()params = {'start_date':timestart.timestamp(), 'end_date':timeend.timestamp()}我想基本上计算 Epoch 中的当前时间和 24 小时前的时间(这不必非常精确),我可以将其传递给我的 API。
查看完整描述

3 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

你可以简单的cast(类型转换)的值timestart.timestamp()和 timeend.timestamp(),这是floats,对ints,即:


from datetime import datetime, timedelta

timestart = datetime.now() - timedelta(hours = 24)

timeend = datetime.now()


s = int(timestart.timestamp()) 

e = int(timeend.timestamp())


params = {'start_date':s, 'end_date':e}

print(params)

输出:


{'start_date': 1554121647, 'end_date': 1554208047}


查看完整回答
反对 回复 2021-12-26
?
MM们

TA贡献1886条经验 获得超2个赞

我通常time.mktime()用于将日期时间转换为纪元时间:


from datetime import datetime, timedelta

import time


timestart = datetime.now() - timedelta(hours = 24)

timeend = datetime.now()


params = {

  'start_date': int(time.mktime(timestart.timetuple())),

  'end_date': int(time.mktime(timeend.timetuple()))

}


# Output

{'start_date': 1554123099, 'end_date': 1554209499}


查看完整回答
反对 回复 2021-12-26
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

Pedro 的另一种解决方案:


from datetime import datetime

from datetime import timedelta


timestart = (datetime.now() - timedelta(hours = 24)).strftime("%s")

timeend = datetime.now().strftime("%s")


params = {'start_date':timestart,

          'end_date':timeend}

输出:


{'start_date': '1554124346', 'end_date': '1554210746'}


查看完整回答
反对 回复 2021-12-26
  • 3 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信