Как я могу преобразовать метку времени RFC 822 в удобочитаемый формат в Python? - PullRequest
2 голосов
/ 02 апреля 2011

Кто-нибудь знает модуль Python, который преобразует временную метку RFC 822 в удобочитаемый формат (как это делает Twitter) в Python?

Я нашел parsedatetime , что, кажется, делает наоборот.

Ответы [ 3 ]

8 голосов
/ 02 апреля 2011

В python вы можете использовать модуль rfc822.Этот модуль предоставляет метод parsedate .

Пытается проанализировать дату в соответствии с правилами в RFC 2822.

Однако этот модуль устарело .

Устарело с версии 2.3: пакет электронной почты следует использовать вместо модуля rfc822.Этот модуль присутствует только для обеспечения обратной совместимости и был удален в версии 3.0.

Согласно этому комментарию, лучше использовать метод parsedate из письма .utils module.

email.utils.parsedate(date)

EDIT:

Пример кода:

import email.utils
from time import mktime
from datetime import datetime

example_date = "Sat, 02 Mar 2011 15:00:00"
date_parsed = email.utils.parsedate(example_date)
dt = datetime.fromtimestamp(mktime(date_parsed))

today = datetime.today()
diff_date = today - dt  # timedelta object

print "%s days, %s hours ago" \
    % (diff_date.days, diff_date.seconds / 3600)

Выход (на данный момент):

31 days, 2 hours ago
2 голосов
/ 02 апреля 2011

datetime.strptime превратит отметку времени в объект даты и времени, который вы можете отформатировать с помощью datetime.strftime

http://docs.python.org/library/datetime.html#strftime-strptime-behavior

0 голосов
/ 02 апреля 2011
...