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
объект...