Рубрики
Без рубрики

DateTime в Python

Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть весь последний контент, будь … Tagged с начинающими, Python, 100daysofpython.

Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть весь последний контент, обязательно Посетите мой блог и подписаться на мою рассылку. Следи за мной на Твиттере .

Это 16 -й день #100daysOfpython Challenge.

Этот пост будет использовать стандарт DateTime Библиотека для работы с датами. Окончательный код проекта можно найти Здесь Анкет

Предварительные условия

  1. Знакомство с Пипенв . Смотрите Здесь за мой пост на Pipenv.
  2. Знакомство с ipython или интерактивные раковины.

Начиная

Давайте создадим Hello-Python-Times каталог и установите необходимые зависимости.

# Make the `hello-python-datetimes` directory
$ mkdir hello-python-datetimes
$ cd hello-python-datetimes

# Init the virtual environment
$ pipenv --three
$ pipenv install --dev ipython

# Create a folder to place files
$ mkdir src
# Create the required files
$ touch src/datetimes.py

Теперь мы готовы начать исследовать стандарт DateTime библиотека.

Играя с датами и временем

Начните оболочку с Pipenv Shell Ipython Анкет Это активирует виртуальную оболочку и запустит интерактивную оболочку iPython.

Теперь мы свободны от даты импорта DateTime И поиграй с этим:

from datetime import date

date(2021, 8, 4).isocalendar()
# datetime.IsoCalendarDate(year=2021, week=31, weekday=3)

date(2021, 8, 4).isoformat()
# '2021-08-04'

date(2021, 8, 4).ctime()
# 'Wed Aug  4 00:00:00 2021'

date(2021, 8, 4).strftime('%A')
# Wednesday

today = date.today()
# datetime.date(2021, 8, 4)

Приведенное выше отображается некоторые из общих методов дата класс. Более подробная информация о дата Класс можно найти Здесь Анкет

Многое из того, что мы хотим сделать сегодня, – это взглянуть на то, как принять некоторые из этих методов и добраться до того, что мы можем сравнить даты.

Сравнение дат

Мы хотим написать вспомогательный метод, чтобы проверить, является ли данная дата в формате Yyyy-mm-dd до сегодняшнего дня. Выйдите из ядра ipython и добавьте следующий код в нашем src/datetimes.py файл:

from datetime import date


def is_date_before_today(date_str: str):
    """Check if date is before today

    Args:
        date_str (str): String of a date to pass

    Returns:
        bool: Value of if date is before today
    """
    try:
        date_obj = date.fromisoformat(date_str)
        return date_obj < date.today()
    except Exception:
        return False


print(is_date_before_today("2019-01-01"))
print(is_date_before_today("2022-01-01"))
print(is_date_before_today("2021-08-03"))
print(is_date_before_today("2021-08-04"))

Мы можем использовать > и < операторы для сравнения дат.

Если мы сейчас запустим Python src/datetimes.py Мы должны увидеть следующий вывод:

$ python src/datetimes.py
True # "2019-01-01"
False # "2022-01-01"
True # "2021-08-03"
False # "2021-08-04"

Мы можем видеть, что вывод отражает строку даты, которая до сегодняшнего дня (с сегодняшним возвратом false ).

Работаю сейчас

DateTime модуль из DateTime Библиотека также имеет Теперь Метод, который возвращает текущую дату и время.

Мы можем использовать это в сочетании с strftime Чтобы получить текущую дату и время в формате строки. Обновите код на следующее:

from datetime import date, datetime


def is_date_before_today(date_str: str):
    """Check if date is before today

    Args:
        date_str (str): String of a date to pass

    Returns:
        bool: Value of if date is before today
    """
    try:
        date_obj = date.fromisoformat(date_str)
        return date_obj < date.today()
    except Exception:
        return False


now = datetime.now()
now_str = now.strftime('%Y-%m-%d')
print(now_str)
print(is_date_before_today(now_str))

Бег Python src/datetimes.py будет выходить 2021-08-04 и Ложный соответственно.

Чтобы узнать больше о Strftime , есть отличный пост в блоге Здесь Анкет

Добавление и вычитание дат

Мы можем использовать datetime.timedelta Чтобы добавить и вычесть даты.

Обновите наш код на следующее:

from datetime import date, datetime, timedelta


def is_date_before_today(date_str: str):
    """Check if date is before today

    Args:
        date_str (str): String of a date to pass

    Returns:
        bool: Value of if date is before today
    """
    try:
        date_obj = date.fromisoformat(date_str)
        return date_obj < date.today()
    except Exception:
        return False


now = datetime.now()
now_str = now.strftime('%Y-%m-%d')
print(now_str)
print(is_date_before_today(now_str))

now_subtract_one_day = now - timedelta(days=2)

now_subtract_one_day_str = now_subtract_one_day.strftime('%Y-%m-%d')
print(now_subtract_one_day_str)
print(is_date_before_today(now_subtract_one_day_str))

now_add_one_day = now + timedelta(days=1)

now_add_one_day_str = now_add_one_day.strftime('%Y-%m-%d')
print(now_add_one_day_str)
print(is_date_before_today(now_add_one_day_str))

Еще раз мы будем Python src/datetimes.py который выведет следующее:

$ python src/datetimes.py
2021-08-04
False
2021-08-02
True
2021-08-05
False

Потрясающе, теперь мы знаем, как добавить и вычесть из дат!

Резюме

Сегодняшний пост продемонстрировал, как использовать DateTime модуль для сравнения времени и определения текущей даты.

Даты и время невероятно важны для любых временных приложений, и следующие посты будут тратить некоторое время на то, чтобы рассмотреть это и как писать тесты для этой формы функциональности.

Ресурсы и дальнейшее чтение

  1. ABCS Pipenv
  2. Пипенв
  3. Код проекта
  4. Strftime
  5. DateTime

Кредит фото: pawel_czerwinski

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

Оригинал: “https://dev.to/okeeffed/datetime-in-python-4d82”