Получение метки времени RFC 3339 на день назад

Глядя на этот ответ, я могу довольно легко получить время на основе RFC 3339, как показано в коде:

d = datetime.datetime.utcnow() # <-- get time in UTC
print d.isoformat("T") + "Z"

Мне интересно, как бы я получил тот же формат времени, но ровно на один день назад. По сути, это будет day-1, однако я не уверен, как это сделать.


person ComputerLocus    schedule 26.02.2014    source источник


Ответы (1)


Вы можете получить один день до x с помощью:

x = x + datetime.timedelta(days = -1)

Следующая расшифровка показывает это в действии:

pax> python
Python 2.7.3 (default, Jan  2 2013, 16:53:07) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> import datetime
>>> d = datetime.datetime.utcnow()
>>> d
datetime.datetime(2014, 2, 26, 1, 11, 1, 536396)

>>> print d.isoformat("T") + "Z"
2014-02-26T01:11:01.536396Z

>>> d = d + datetime.timedelta(days=-1)
>>> d
datetime.datetime(2014, 2, 25, 1, 11, 1, 536396)

>>> print d.isoformat("T") + "Z"
2014-02-25T01:11:01.536396Z
person paxdiablo    schedule 26.02.2014
comment
Примечание: обычно день назад может отличаться от 24 часа. Хотя они одинаковы для часового пояса UTC. - person jfs; 28.02.2014