为datetime添加秒数

时间:2017-01-09 15:13:56

标签: python datetime utc

我正在努力为时间戳添加不同的秒数。

我们假设我要向2016-12-02 13:26:49添加1136秒。这就是我到目前为止所做的:

import datetime

if __name__ == '__main__':
    timestamp = datetime.datetime(year=2016, month=12, day=02, hour=13, minute=26, second=49)
    offset = 1140
    m, s = divmod(offset, 60)
    h, m = divmod(m, 60)

我在another post中看到了类似于我想要的东西,但这不适用于Python。

我应该使用datetime.datetime.combine()吗?

我有大量数据,我不想手动输入每笔金额的日期。

提前感谢您的帮助。

5 个答案:

答案 0 :(得分:6)

您可以使用timedelta向datetime对象添加秒数。

>>> import datetime
>>> now = datetime.datetime.now()
>>> now 
datetime.datetime(2017, 1, 9, 16, 16, 12, 257210)
>>> now + datetime.timedelta(seconds=1136)
datetime.datetime(2017, 1, 9, 16, 22, 12, 257210)
>>> 

答案 1 :(得分:5)

只需向timestamp添加timedelta

timestamp = datetime.datetime(year=2016, month=12, day=02, hour=13, minute=26, second=49)
d = datetime.timedelta(seconds=1136)
new_timestamp = timestamp+d

在控制台中运行:

$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> timestamp = datetime.datetime(year=2016, month=12, day=02, hour=13, minute=26, second=49)
>>> d = datetime.timedelta(seconds=1136)
>>> new_timestamp = timestamp+d
>>> new_timestamp
datetime.datetime(2016, 12, 2, 13, 45, 45)

结果是 2016年12月12日 13:45:45。

答案 2 :(得分:3)

添加timedelta

>>> import datetime
>>> timestamp = datetime.datetime(year=2016, month=12, day=2, hour=13, minute=26, second=49)
>>> timestamp += datetime.timedelta(seconds=1136)
>>> timestamp
datetime.datetime(2016, 12, 2, 13, 45, 45)

答案 3 :(得分:1)

使用timedelta。

import datetime
from datetime import timedelta

timestamp = datetime.datetime(year=2016, month=12, day=02, hour=13, minute=26, second=49)

#offset = 1140
#m, s = divmod(offset, 60)
#h, m = divmod(m, 60)
extra = timedelta(seconds=1136)

print timestamp + extra

答案 4 :(得分:0)

我知道,已经有四个答案,但请考虑使用箭头模块。它使许多日期和时间操作更容易。

>>> import arrow
>>> arrow.get('2016-12-02 13:26:49').shift(seconds=+1136)
<Arrow [2016-12-02T13:45:45+00:00]>
>>> newTime = arrow.get('2016-12-02 13:26:49').shift(seconds=+1136)
>>> newTime.strftime('%d-%m-%y')
'02-12-16'

在导入后的第一个语句中,您可以看到箭头可以将您的时间戳转换为内部时间格式,并在一行代码中进行移位。

在下一个声明中,我保存了该结果并显示它以通常的方式操作内部格式很容易。 (箭头有更多内容。)