Python вычитает две строки даты

У меня есть две строки, содержащие такую ​​дату "

start_date = 'Sun Sep 16 16:05:15 +0000 2012' end_date = 'Sun Sep 17 23:55:20 +0000 2012' 

Мне нужно выполнить: end_date - start_date Он должен вернуть количество секунд, отделяющих даты окончания и начала.

Эти данные извлекаются из twitter api. Это то, что мне дает json. Поскольку это кажется обычно используемой строкой, я предполагаю, что есть библиотека или метод, которые могут справиться с этим. Я просто не могу его найти. Благодаря!

7 Solutions collect form web for “Python вычитает две строки даты”

Вот полный ответ:

 from datetime import datetime start_date = 'Sun Sep 16 16:05:15 +0000 2012' end_date = 'Sun Sep 17 23:55:20 +0000 2012' def __datetime(date_str): return datetime.strptime(date_str, '%a %b %d %H:%M:%S +0000 %Y') start = __datetime(start_date) end = __datetime(end_date) delta = end - start print delta # prints: 1 day, 7:50:05 print delta.total_seconds() # prints: 114605.0 

Как сильно ты выглядишь?

Модуль datetime для Python будет анализировать этот формат и позволить вам выполнять арифметику на результирующих объектах.

Вот пример кода:

 a = datetime.datetime.strptime("Sun Sep 16 16:05:15 +0000 2012", "%a %b %d %H:%M:%S +0000 %Y") 

Обратите внимание, что в Windows (где я пробовал выше) директива %z похоже, не поддерживается, поэтому часть +0000 жестко запрограммирована. Если вы ожидаете, что эта часть (смещение UTC) будет изменяться, вам придется обрабатывать ее на отдельном шаге, если вы не можете проверить, что %z работает для вас.

Просмотр модуля datetime ( http://docs.python.org/2/library/datetime.html ) У него есть методы для обработки дат любого типа

Используйте datetime.strptime() для синтаксического анализа строки в соответствии с кодом формата. В вашем случае формат будет выглядеть как "%a %b %d %H:%M:%S %z %Y" . (примечание: я не тестировал этот формат разбора).

Подробности: http://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

Затем вы можете вычесть объекты datetime и получить объект timedelta .

Или вы можете использовать одну из обложек API Python Twitter API, указанную на странице разработчика Twitter, которая, вероятно, сделает для вас конверсию: https://dev.twitter.com/docs/twitter-libraries#python

используйте метод datetime.strptime для преобразования вашей строки в объект datetime. Здесь вы можете найти требуемые форматы: http://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

В твоем случае:

% a Сокращенное название недели в Locale.
% b Сокращенное название месяца Locale.
% d День месяца как десятичное число [01,31].
% H Час (24-часовой режим) в виде десятичного числа [00,23].
% M Минута как десятичное число [00,59].
% S Второй как десятичное число [00,61].
% Y Год со столетием как десятичное число.
% z UTC offset в форме + HHMM или -HHMM (пустая строка, если объект наивен).

Вы можете анализировать даты с помощью datetime.datetime.strptime (), тогда вы можете делать арифметические манипуляции?

from datetime import datetime

 start_date = 'Sun Sep 16 16:05:15 +0000 2012' end_date = 'Sun Sep 17 23:55:20 +0000 2012' def __datetime(date_str): return datetime.strptime(date_str, '%a %b %d %H:%M:%S +0000 %Y') start = __datetime(start_date) end = __datetime(end_date) delta = end - start print(delta) print(delta.total_seconds()) hours = (delta.total_seconds())/3600 print("Hours %s" % hours) minutes = (delta.total_seconds())//3600 print("minutes %s" % minutes) print(divmod(delta.total_seconds(), 3600)) h, m = divmod(delta.total_seconds(), 3600) print(h) print(m) M, s = divmod(m, 60) print(M) print(s) 
  • В чем разница между r и% r в Python?
  • Обратная строка: string работает, но строка и другие не
  • Как получить объект из строки?
  • Python обрезает международную строку
  • доступ к определенным элементам из словаря python
  • Удаление неразрывных пробелов из строк с использованием Python
  • str.format (list) с отрицательным индексом не работает в Python
  • Python __str__ против __unicode__
  • Python - лучший язык программирования в мире.