Python Datetime: подробное руководство с примерами

Python Datetime: подробное руководство с примерами

При работе с проектами данных в Python вы, скорее всего, будете использовать функции даты и времени. Почти каждый набор данных, с которым вы будете работать, будет иметь столбец даты и времени, которым вы захотите манипулировать в соответствии со своими потребностями и требованиями проекта.

К счастью, Python поставляется со своим собственным встроенным модулем с именем datetime , который позволяет вам представлять, манипулировать и выполнять операции с экземплярами datetime, такими как даты, время и их комбинации. Освоение модуля даты и времени Python поможет вам сделать более надежный анализ временных рядов в ваших проектах.

Модуль Python datetime — это инструмент для обработки дат, времени и временных интервалов. Это позволяет вам выполнять различные операции с датами и временем простым способом.

Python Datetime: подробное руководство с примерами

Реферат по программированию - исходный код и двоичный код на дисплее разработчика программного обеспечения. Черная тема с цветным синтаксисом.

Используя модуль datetime в Python , вы можете легко работать со значениями даты и времени, управлять часовыми поясами, выполнять вычисления и даже обрабатывать форматирование и синтаксический анализ для различных представлений. Эта функциональность делает модуль datetime незаменимым инструментом во многих приложениях, от обработки данных до планирования событий и не только.

Прежде чем вы начнете использовать модуль даты и времени Python в своих проектах, очень важно понять его базовые классы. В разделе ниже мы рассмотрим пять основных классов модуля Python DateTime. Давайте погрузимся в это!

Оглавление

Каковы 5 основных классов модуля Python Datetime?

Модуль Python Datetime является частью стандартной библиотеки, которая предоставляет классы для работы с датами, временем, часовыми поясами и длительностью.

Модуль состоит из пяти основных классов:

  1. Дата и время

  2. Дата,

  3. Время,

  4. Таймдельта

  5. Часовой пояс.

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

Как использовать класс Datetime

Класс Python Datetime является наиболее часто используемым классом в модуле. Он представляет один момент времени с такими атрибутами, как год, месяц, день, час, минута, секунда и микросекунда.

Некоторые общие операции с классом Datetime Python включают в себя:

  • datetime.datetime.now()

Эта функция позволяет получить текущую дату и время. Ниже приведен пример получения текущей даты и времени:

import datetime

# Get the current date and time
now = datetime.datetime.now()

print("Current date and time: ", now)

Это выведет текущую дату и время на момент выполнения в формате YYYY-MM-DD HH:MM:SS.ssssss.

Python Datetime: подробное руководство с примерами

  • datetime.datetime

Эта функция позволяет вам создать собственный объект даты и времени. Ниже приведен пример использования datetime.datetime в вашем коде:

from datetime import date

# Create a custom date and time object
custom_date = datetime.datetime(2023, 5, 22, 17, 40)

print("Custom date and time: ", custom_date)

В дополнение к вышеперечисленным функциям класс Datetime также предоставляет методы для работы с датой и временем, такие как:

Python Datetime: подробное руководство с примерами

  • стрфтайм() :

Метод позволяет форматировать объекты даты и времени в виде строки. Ниже приведен пример метода strftime():

import datetime

# Create a custom date and time object
custom_date = datetime.datetime(2023, 5, 22, 17, 40)

# Format the datetime object as a string
formatted_date = custom_date.strftime("%B %d, %Y, %H:%M")

print("Formatted date and time: ", formatted_date)

Этот код преобразует объект datetime в строку:

Python Datetime: подробное руководство с примерами

  • стрптайм() :

Эта функция в классе datetime позволяет анализировать строку, представляющую объекты даты и времени, в один объект Datetime. Ниже приведен пример синтаксического анализа даты, хранящейся в виде строки, в объект Datetime:

import datetime

# String representing a date and time
date_string = "May 22, 2023, 17:40"

# Parse the string into a datetime object
parsed_date = datetime.datetime.strptime(date_string, "%B %d, %Y, %H:%M")

print("Parsed date and time: ", parsed_date)

Это преобразует строку в объект DateTime.

Python Datetime: подробное руководство с примерами

Как использовать класс даты

Класс Date позволяет вам иметь дело исключительно с объектами даты (год, месяц и день). Вы можете создавать объекты даты с классом даты.

Некоторые общие операции с классом Date включают в себя:

  • дата/время.дата.сегодня()

Эта функция в классе даты позволяет получить текущую дату. Ниже приведен пример получения текущей даты с помощью класса даты:

import datetime

# Get the current date
today = datetime.date.today()

print("Today's date: ", today)

Этот код Python выводит текущую дату на момент выполнения в формате ГГГГ-ММ-ДД.

Python Datetime: подробное руководство с примерами

На момент написания этой статьи текущая дата была 2023-05-22.

  • дата/время.дата()

Эта функция в классе даты позволяет создавать объекты даты. Пример демонстрирует создание пользовательского объекта даты с помощью функции datetime.date():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

print("Custom date: ", custom_date)

В функции datetime.date() вы указываете год, месяц и день в качестве аргументов.

Этот скрипт выведет 2023-05-22, так как вы создали настраиваемый объект даты для даты 22 мая 2023 года.

Python Datetime: подробное руководство с примерами

Класс Date также предоставляет полезные методы, такие как:

  • будний день()

Этот метод в классе даты возвращает день недели (0 для понедельника, 1 для вторника и т. д.). В следующем примере демонстрируется метод weekday():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Get the day of the week
day_of_week = custom_date.weekday()

print("Day of the week: ", day_of_week)

В этом примере custom_date.weekday() вернет 0, поскольку 22 мая 2023 года приходится на понедельник.

Python Datetime: подробное руководство с примерами

  • strftime()

Этот метод в классе даты позволяет форматировать объект даты как строку . В следующем примере демонстрируется функция strftime():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Format the date object as a string
formatted_date = custom_date.strftime("%B %d, %Y")

print("Formatted date: ", formatted_date)

Это выведет дату в формате «Месяц, день, год».

Python Datetime: подробное руководство с примерами

  • стрпвремя()

Этот метод позволяет анализировать строку, представляющую дату, в объект Date. Ниже приведен пример преобразования строковой даты в объект Date:

import datetime

# String representing a date
date_string = "May 22, 2023"

# Parse the string into a date object
parsed_date = datetime.datetime.strptime(date_string, "%B %d, %Y").date()

print("Parsed date: ", parsed_date)

Это выведет объект даты, созданный из строки даты.

Python Datetime: подробное руководство с примерами

Как использовать временной класс

The Time class allows you to work with time instances (hour, minute, second, microsecond). With the time class, you can create a custom time object with datetime.time().

The following example demonstrates creating a custom time object:

import datetime

# Create a custom time object
custom_time = datetime.time(17, 40)

print("Custom time: ", custom_time)

In the datetime.time() function, you provide the hour and minute as arguments.

This script will output 17:40:00, as specified in the Python code.

Python Datetime: подробное руководство с примерами

The Time class provides useful methods, such as:

  • strftime()

This method allows you to format the time object as a string. Below is an example of this function:

import datetime

# Create a custom time object
custom_time = datetime.time(17, 40)

# Format the time object as a string
formatted_time = custom_time.strftime("%H:%M")

print("Formatted time: ", formatted_time)

This will output the local time formatted as “Hour:Minute”.

Python Datetime: подробное руководство с примерами

  • strptime()

This function allows you to parse a string representing time into a Time object. The following example demonstrates this function:

from datetime import time

# String representing a time
time_string = "17:40"

# Parse the string into a time object
parsed_time = datetime.datetime.strptime(time_string, "%H:%M").time()

print("Parsed time: ", parsed_time)

This will output the time objects created from the time string.

Python Datetime: подробное руководство с примерами

How to Use The Timedelta Class

The Timedelta class allows you to represent represents a duration or difference between two dates or times.

With Timedelta class, you can perform the following operations:

  • Calculate the difference between two dates or times

An example of calculating the difference between two dates is given below:

 import datetime

# Create two custom date objects
date1 = datetime.date(2023, 5, 22)
date2 = datetime.date(2023, 6, 1)

# Calculate the difference between the two dates
date_difference = date2 - date1

print("Difference between the dates is: ", date_difference.days, "days")

In this example, date_difference is a timedelta object representing the difference between date2 and date1. The .days property gives the number of days between the two dates.

Python Datetime: подробное руководство с примерами

  • Add or subtract a duration to a date or time

An example of adding a duration to a date is given below:

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Create a duration of 10 days
duration = datetime.timedelta(days=10)

# Add the duration to the date
new_date = custom_date + duration

print("New date: ", new_date)

In this example, duration is a timedelta object representing a duration of 10 days. We use the + operator to add this duration to custom_date.

Python Datetime: подробное руководство с примерами

How to Use the Timezone Class

The Timezone class allows you to handle time zones and daylight saving time adjustments.

You can perform the following operation with timezone class:

  • Create a timezone object

To create a timezone object, you can use the datetime.timezone() function. The following example demonstrates creating a timezone object:

import datetime

# Create a timezone object for a timezone 2 hours ahead of UTC
two_hours_ahead = datetime.timezone(datetime.timedelta(hours=2))

print("Timezone object: ", two_hours_ahead)

In this example, two_hours_ahead is a timezone object representing a timezone that is 2 hours ahead of Coordinated Universal Time (UTC).

This script will output a timezone object like .

Python Datetime: подробное руководство с примерами

  • Object with a specific timezone

To achieve this, you can use the .replace(tzinfo=tz) function. The following example demonstrates this function:

import datetime

# Create a naive datetime object
naive_datetime = datetime.datetime(2023, 5, 22, 17, 40)

# Create a timezone object for a timezone 2 hours ahead of UTC
two_hours_ahead = datetime.timezone(datetime.timedelta(hours=2))

# Convert the naive datetime object to an aware object
aware_datetime = naive_datetime.replace(tzinfo=two_hours_ahead)

print("Aware datetime object: ", aware_datetime)

In this example, naive_datetime is a datetime object that does not have any timezone information. The two_hours_ahead variable is a timezone object representing a timezone that is 2 hours ahead of UTC.

The replace(tzinfo=two_hours_ahead) method is used to create a new datetime object with the same date and time as naive_datetime, but with tzinfo set to two_hours_ahead.

Python Datetime: подробное руководство с примерами

The Timezone helps you maintain accurate and consistent time values when working with data that spans multiple time zones.

You have gone through some of the most important functions in the datetime module in Python. In the next section we will implement some of the above functions to a case studywhich will give you a practical look into the implementation of these datetime module in your projects.

Implementing the DateTime Module Functions to a Case Study

Let’s consider a case study where we are given a dataset of different events that happened around the world. The dataset has corresponding dates and times in a string format.

Наша задача — преобразовать эти даты и время в объекты DateTime и выполнять над ними операции по мере необходимости.

Предположим, нам дан следующий набор данных:

Python Datetime: подробное руководство с примерами

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

Для этого мы можем использовать следующий код:

import datetime

# Convert 'Date' and 'Time' strings into datetime objects
df['DateTime'] = df['Date'] + ' ' + df['Time']
df['DateTime'] = df['DateTime'].apply(lambda x: datetime.datetime.strptime(x, "%b %d, %Y %H:%M"))

print(df)

В этом блоке кода мы сначала создаем новый столбец «DateTime» в вашем DataFrame, объединяя столбцы «Дата» и «Время». Затем мы применяем функцию datetime.strptime к каждому значению в этом новом столбце, чтобы преобразовать строки даты и времени в объекты даты и времени. Наконец, мы распечатываем DataFrame, чтобы увидеть результат.

Python Datetime: подробное руководство с примерами

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

duration = df.loc[1, 'DateTime'] - df.loc[0, 'DateTime']
print("Duration between Event1 and Event2: ", duration)

Этот скрипт Python рассчитает продолжительность между «Event1» и «Event2».

Python Datetime: подробное руководство с примерами

Наконец, давайте преобразуем объекты datetime в другой часовой пояс. Когда можно добиться этого, используя функции часового пояса в модуле datetime.

# Create a timezone object for UTC
utc_tz = datetime.timezone(datetime.timedelta(0))

# Convert the datetime objects into UTC
df['DateTime_UTC'] = df['DateTime'].apply(lambda x: x.replace(tzinfo=utc_tz))

print(df)

В этом коде мы создаем объект часового пояса для UTC. Затем мы создаем новый столбец в нашем DataFrame с именем «DateTime_UTC», применяя лямбда-функцию к нашему столбцу «DateTime». Это заменит информацию о часовом поясе каждого объекта datetime на UTC.

Python Datetime: подробное руководство с примерами

В приведенном выше примере примера вы видите, как различные функции, предоставляемые модулем DateTime, работают вместе для преобразования даты и времени в подходящий формат.

Теперь, когда вы знакомы с некоторыми функциями модуля datetime, давайте продолжим и рассмотрим несколько дополнительных функций, которые вы захотите использовать при работе над более сложными проектами.

Помимо функций, перечисленных выше, есть еще много полезных функций, которые вы можете использовать в зависимости от решаемой проблемы. Разработчики Python часто держат страницу документации открытой для поиска функций, которые могут удовлетворить ваши потребности. И мы предлагаем вам сделать то же самое!

Дополнительные функции даты и времени

В этом разделе мы обсудим дополнительные функции в модуле даты и времени Python . Это включает в себя получение дней недели, месяцев и названий дней недели вместе с функцией ctime() .

Как получить дни недели из даты

Модуль datetime поставляется с функцией weekday() , которая возвращает день недели в виде целого числа (где понедельник равен 0, а воскресенье — 6).

Чтобы использовать эту функцию, вы можете вызвать ее для объекта даты или даты и времени.

import datetime

today = datetime.date.today()
weekday_number = today.weekday()

print(weekday_number)

Вывод приведенного выше кода показан на изображении ниже:

Python Datetime: подробное руководство с примерами

Текущая местная дата — 23.05.2023, а рабочий день — понедельник.

Как получить названия месяцев и дней недели из даты

datetime также позволяет получить название месяца и день недели.

Вы можете использовать функцию strftime() , которая форматирует объект даты или даты и времени в виде строки.

Ниже приведен пример использования функции strftime() для получения названия месяца и дня недели:

import datetime

today = datetime.date.today()
weekday_name = today.strftime('%A')
month_name = today.strftime('%B')

print(weekday_name)
print(month_name)

Этот код будет печатать название дня недели и название месяца на выходе.

Python Datetime: подробное руководство с примерами

Как использовать функцию Ctime

Функция ctime() в модуле datetime возвращает строковое представление даты или объекта даты и времени в формате «Day Mon DD HH:MM:SS YYYY».

ctime — это метод для объекта datetime , а не отдельная функция.

Ниже приведен пример использования функции ctime в вашем коде:

import datetime

now = datetime.datetime.now()
formatted_date = now.ctime()

print(formatted_date)

Приведенный выше код вернет строковое представление объекта даты.

Python Datetime: подробное руководство с примерами

Чтобы узнать больше о работе с данными временных рядов, посмотрите следующее видео:

Последние мысли

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

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

Изучив, как использовать модуль datetime, вы будете лучше подготовлены к решению этих задач в своих собственных проектах!


Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

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

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

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

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать