python:计算时间进度

时间:2017-04-01 21:28:24

标签: python time date-arithmetic

我正在编写处理文本文件的python代码,并且对于每行输入,计算该行中描述的操作所涉及的时间,然后报告“运行时间”。所需的输出如

        lapse     time
start            12:00
action1  0:37    12:37
action2  1:01    13:38
action3  0:30    14:08

我找到了一些可能的方法,但都看起来很尴尬。最重要的是我对使用“时间”或“strftime”或“datetime”或者甚至是其他东西感到困惑。我相信必须存在一个简单优雅的解决方案。

NB时区和DST无关紧要,如果我能够显示足够的UTC,至少在开始时。在稍后阶段,最后一列(UTC)可能会被“本地时间”列扩充,但这是次要的。

编辑,因为明显缺乏清晰度,添加示例伪代码:

 TIME='12:00'
 PCS_PER_HOUR=750
 with infile:
  read line of data
  process data, including calc of PCS_DONE
  LAPSE=PCS_DONE/PCS_PER_HOUR
  TIME += LAPSE
  print(' .....   ' ,format(data, data, data, LAPSE, TIME))

我的问题是如何将“TIME = '12:00”变成python可以轻松处理的东西,并以计算的整数秒或分钟或其他任何值递增。

1 个答案:

答案 0 :(得分:1)

使用datetime.timedelta

设置开始时间。

In [1]: import datetime

最初的时间是12小时。

In [2]: start = datetime.timedelta(hours=12)

In [3]: start
Out[3]: datetime.timedelta(0, 43200)

假设LAPSE为0.23小时(每小时除以件数产生小时数)。

In [4]: action1 = datetime.timedelta(hours=0.23)

现在您可以根据需要设置时间格式。标准表示是小时,分钟和秒:

In [5]: str(start)
Out[5]: '12:00:00'

In [6]: str(start+action1)
Out[6]: '12:13:48'