【问题标题】:Python timestamp range return in intervalsPython时间戳范围以间隔返回
【发布时间】:2019-11-21 14:10:10
【问题描述】:

我正在使用 python3,我是初学者, 我有这 2 个时间戳:

StartDate=20191119110000  #2019 NOV 19 11:00:00
EndDate=20191119120000    #2019 NOV 19 12:00:00

60 分钟范围。

我希望我的代码以我选择的间隔返回时间戳范围,例如:

此范围为 60 分钟,间隔为 10 分钟:#i 仅在此处复制小时和分钟

1 1100 1110
2 1110 1120
3 1120 1130
4 1130 1140
5 1140 1150
6 1150 1200

如果我选择 5 分钟的间隔,它会返回:

1 1100 1105
2 1105 1110
3 1110 1115

我真的使用 epoce 时间而不是常规时间戳。 我需要它来支持像 1573989720000.0 纪元时间这样的浮点时间,所以我不会错过任何毫秒。 我该怎么做 ?

编辑: 此代码有效,但消除了剩余时间。

import numpy
start = 1573989000000.0
end = 1573989720000.0
minute = 60000.0
interval = minute *5

for i in numpy.arange(start, end, interval):
    print(i)

如果我有一个像这里这样的范围,有 21 分钟,而我的间隔是 5 分钟,那么我只会得到 4 个答案,并且剩余时间不会显示,因为间隔对于剩余时间来说太大了。我该怎么办?

【问题讨论】:

  • int 还是str
  • float = 1573989720000.0 纪元时间

标签: python python-3.x time


【解决方案1】:

你可以使用范围函数

start = ...
end = ...
interval = ... (in milliseconds)
for i in range(start, end, interval):
    print(i)

这应该可以满足您的要求

【讨论】:

  • start = 1573989000000.0 end = 1573989720000.0 interval = 600.000 for i in range(start, end, interval): print(i) TypeError: 'float' 对象不能被解释为整数
  • @BatchenRegev 它们必须是整数。类型将它们转换为整数
  • 去掉数字后面的.0,需要使用整数
  • @BatchenRegev 如果他们实际上都是ints 那么你可以int()他们。
  • 好吧,我做到了,但它留下了“剩余”,如果我的范围是 21 分钟并且我的间隔是 5 分钟,我只得到 4 个结果并且剩余的丢失了,怎么办?我做 ?代码:import numpy start = 1573989000000.0 end = 1573989720000.0 minute = 60000.0 interval = minute *5
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-26
  • 1970-01-01
  • 2012-08-25
  • 1970-01-01
  • 2019-11-08
  • 2016-07-16
  • 2021-08-30
相关资源
最近更新 更多