向日期时间添加秒数
Adding seconds to datetime
我正在努力为时间戳添加不同的秒数。
假设我想将 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)
我在 中看到了一些与我想要的类似的东西,但这不适用于 Python。
我应该使用 datetime.datetime.combine()
吗?
我的数据量很大,不想每次都手动输入日期。
提前感谢您的帮助。
只需在 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。
您可以使用 timedelta 向日期时间对象添加秒数。
>>> 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)
>>>
添加一个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)
使用时间增量。
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
我知道,已经有 四个 答案,但请考虑使用 arrow 模块。它使许多日期和时间操作变得更加容易。
>>> 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'
在导入后的第一条语句中,您可以看到箭头可以将您的时间戳转换为内部时间格式,并在一行代码中完成转换。
在下一条语句中,我将保存该结果并展示以通常的方式很容易操作内部格式。 (更多可用箭头。)
我正在努力为时间戳添加不同的秒数。
假设我想将 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)
我在
我应该使用 datetime.datetime.combine()
吗?
我的数据量很大,不想每次都手动输入日期。
提前感谢您的帮助。
只需在 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。
您可以使用 timedelta 向日期时间对象添加秒数。
>>> 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)
>>>
添加一个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)
使用时间增量。
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
我知道,已经有 四个 答案,但请考虑使用 arrow 模块。它使许多日期和时间操作变得更加容易。
>>> 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'
在导入后的第一条语句中,您可以看到箭头可以将您的时间戳转换为内部时间格式,并在一行代码中完成转换。
在下一条语句中,我将保存该结果并展示以通常的方式很容易操作内部格式。 (更多可用箭头。)