Python Date Utility Library - PullRequest
       0

Python Date Utility Library

4 голосов
/ 04 марта 2012

Есть ли в python библиотека, которая может производить измерения даты для определенного дня?Я хотел бы использовать это для анализа данных.Часто у меня есть временной ряд дат, но для целей агрегирования я хотел бы иметь возможность быстро создавать даты, связанные с этим днем, например, первую дату месяца, первый день недели и т. П.

Я думаю, что мог бы создать свой собственный, но если что-то уже есть, было бы неплохо.

Спасибо

Ответы [ 2 ]

7 голосов
/ 04 марта 2012

Посмотрите на dateutil.

правила повторения и относительные дельты - это то, что вы хотите.1011 * Например, если вы хотите получить последний понедельник:

import dateutil.relativedelta as rd
import datetime

last_monday = datetime.date.today() + rd.relativedelta(weekday=rd.MO(-1))
2 голосов
/ 04 марта 2012

time и datetime модули

Для некоторых ваших целей вы можете использовать time модуль с strftime() методом или date модуль с его strftime() методом.Позволяет, среди прочего, получить:

  • номер недели в году,
  • номер дня недели (вы также можете использовать метод weekday() для получения номера дня недели между 0 для понедельника и 6 для воскресенья),
  • год,
  • месяц,

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

Примеры

Чтобы получить нужные данные, просто:

  • чтобы получить номер дня недели

    >>> from datetime import datetime
    >>> datetime.now().weekday()
    6
    
  • чтобы получить первый день месяца, используйте replace() функцию datetime объект:

    >>> from datetime import datetime
    >>> datetime.now()
    datetime.datetime(2012, 3, 3, 21, 41, 20, 953000)
    >>> first_day_of_the_month = datetime.now().replace(day=1)
    >>> first_day_of_the_month
    datetime.datetime(2012, 3, 1, 21, 41, 20, 953000)
    

РЕДАКТИРОВАТЬ : Как отметил в комментариях Дж.Ф. Себастьян, объекты datetime имеют методы weekday(), что делает использование int(given_date.strftime('%w')) бессмысленным.Я обновил ответ выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...