我正在努力为时间戳添加不同的秒数。
我们假设我要向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()
吗?
我有大量数据,我不想手动输入每笔金额的日期。
提前感谢您的帮助。
答案 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'
在导入后的第一个语句中,您可以看到箭头可以将您的时间戳转换为内部时间格式,并在一行代码中进行移位。
在下一个声明中,我保存了该结果并显示它以通常的方式操作内部格式很容易。 (箭头有更多内容。)