向日期时间添加秒
问题描述:
我正努力在时间戳中添加不同的秒数。向日期时间添加秒
让我们假设我想添加1136秒到2016-12-02 13:26:49
。这是我迄今:
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()
?
我有大量的数据,我不想手动输入每个数字的日期。
非常感谢您的帮助。
答
只需添加一个timedelta
到timestamp
:
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秒。
答
您可以使用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)
>>>
+2
也许修改秒数到'1136'因为这是在问题中(尽管我承认这是一个细节)。 –
答
添加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)
答
使用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
答
我所知,已经有答案,但可以考虑使用箭头模块。它使许多日期和时间操作更容易。
>>> 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'
在导入后,你可以看到,箭头可以将时间戳转换为内部时间格式,做一行代码移位的第一条语句。
在接下来的声明中,我保存了该结果,并显示了以常规方式操作内部格式很容易。 (更多可用箭头。)
https://docs.python.org/2/library/datetime.html#timedelta-objects – 2017-01-09 15:15:06