如何解决将给定的时间间隔转换为毫秒?
我正在使用API查询历史数据,该API允许用户以不同的时间间隔(例如,分钟,每小时,每天,每周等)查询历史数据。该API还允许用户获取两个时间点之间的数据。但是,这些时间必须在UNIX毫秒内。
一个人可以查询的时间间隔在他们的网站上列出为
'1m','5m','15m','30m','1h','3h','6h','12h','1D','7D','14D','1M
。
这些格式与Python的datetime.strftime()
方法相似。我想知道如何将每个时间间隔转换为毫秒值。
例如,1m
等于1000 * 60 = 60,000
。 1h
等于1000 * 60 * 60 = 3600000
。
解决方法
如果仅需要这12个项目,则可以为此目的硬编码一个字典:
# time keys to milliseconds
time_map = {
'1m': 60 * 1000,'5m': 5 * 60 * 1000,'15m': 15 * 60 * 1000,'30m': 30 * 60 * 1000,'1h': 60 * 60 * 1000,'3h': 3 * 60 * 60 * 1000,'6h': 6 * 60 * 60 * 1000,'12h': 12 * 60 * 60 * 1000,'1D': 24 * 60 * 60 * 1000,'7D': 7 * 24 * 60 * 60 * 1000,'14D': 14 * 24 * 60 * 60 * 1000,'1M': 30 * 24 * 60 * 60 * 1000 # !assumption! months are always 30 days
}
print(time_map['12h'])
>43200000
如果您希望它更干净一点,可以用命名变量替换1000、60和24。
如果要使用库,则可以使用datetime.timedelta
,但是它只需要几天,几秒钟和几微秒的关键字args-因此您仍然需要自己进行一些算术操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。