Простые в использовании метки времени в Python - PullRequest
3 голосов
/ 24 января 2010

Я работаю над журнальным приложением на Python. Приложение в основном позволяет пользователю записывать записи в журнал и добавляет отметку времени для последующих запросов к журналу.

На данный момент я использую функцию time.ctime() для создания временных отметок, которые являются визуально удобными. Записи журнала, таким образом, выглядят так:

Thu Jan 21 19:59:47 2010 Did something
Thu Jan 21 20:01:07 2010 Did something else

Теперь я хотел бы иметь возможность использовать эти временные метки для поиска / запроса. Мне нужно иметь возможность искать, например, «2010», или «февраль 2010», или «23 февраля 2010».

Мои вопросы:

1) Какие временные модули следует использовать: time против datetime?

2) Каким будет подходящий способ создания и использования объектов с отметками времени?

Большое спасибо!

Ответы [ 2 ]

9 голосов
/ 24 января 2010

Возможно, вы захотите перейти на ISO 8601 .Поможет, например, с сортировкой или передачей данных между разными системами.

7 голосов
/ 24 января 2010

Вариант 1: ничего не менять. Используйте time.strptime для анализа ваших меток времени.

Вариант 2: изменить на datetime. Вы можете отформатировать временные метки таким же образом и использовать datetime.strptime для их анализа.

Это не имеет большого значения, так как код будет похожим. Поиск будет включать совпадение месяцев, дней или лет или чего-то подобного. Используйте time кортежи для этого. Или datetime.datetime объекты. Или, поиск будет включать сравнение диапазонов времени; используйте для этого time в секундах. Или используйте datetime объекты. Они оба будут работать и - для этого - они будут похожи по сложности.

Расчет даты (90 дней в будущем, 3 месяца в прошлом и т. Д.) Является сильной стороной datetime.

В общем, вы часто будете счастливы с datetime, потому что он делает больше и не требует переключения между простым двойным временем и временем кортежа.

...