Timedelta Python: я не могу просто ввести в любую единицу времени, в которой я хочу, значение всей разницы?

Я пытаюсь получить некоторые умные даты, так как пост был сделан на моем сайте ("секунды, часы, недели, и т. Д."), И я использую разницу между datetime.timedelta между utcnow и utc, хранящимися в база данных для поста.

Похоже, в соответствии с документами, я должен использовать атрибут дней И секунд, чтобы получить необычные строки даты, которые я хочу.

Разве я не могу просто ввести в ту единицу времени, в которой я хочу, значение всей разницы? Я что-то пропустил?

Было бы идеально, если бы я мог получить всю разницу в секундах.

4 ответа

Решение

Кажется, что в Python 2.7 появился метод total_seconds(), который, я думаю, вы искали!

Вы можете вычислить разницу в секундах.

total_seconds = delta.days * 86400 + delta.seconds

Нет, ты не "что-то упустил". Это не дает дельты в считанные секунды.

Было бы идеально, если бы я мог получить всю разницу в секундах.

Тогда простая старая unix-timestamp, предоставляемая модулем 'time', может быть вам по вкусу.

Лично мне еще многое предстоит убедить в том, что происходит в "datetime".

Как сказал Бобинс, вы можете использовать временные метки, например так:

# assuming ts1 and ts2 are the two datetime objects
from time import mktime
mktime(ts1.timetuple()) - mktime(ts2.timetuple())

Хотя я думаю, что это даже хуже, чем просто подсчитывать секунды из timedelta объект...

Другие вопросы по тегам