Python Datetime: вичерпний посібник із прикладами

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

На щастя, Python має власний вбудований модуль під назвою datetime , який дозволяє представляти, маніпулювати та виконувати операції з екземплярами datetime, такими як дати, час і їх комбінації. Оволодіння модулем datetime Python допоможе вам робити надійніший аналіз часових рядів у ваших проектах.

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

Python Datetime: вичерпний посібник із прикладами

Анотація програмування – вихідний код і двійковий код на дисплеї розробника програмного забезпечення. Чорна тема з кольоровим синтаксисом.

Використовуючи модуль datetime у , ви можете легко працювати зі значеннями дати й часу, керувати часовими поясами, виконувати обчислення та навіть керувати форматуванням і розбором для різних уявлень. Ця функціональність робить модуль datetime важливим інструментом у багатьох програмах, від обробки даних до планування подій тощо.

Перш ніж почати використовувати модуль Python datetime у своїх проектах, дуже важливо зрозуміти його основні класи. У розділі нижче ми розглянемо п’ять основних класів модуля DateTime Python. Давайте потрапимо в це!

Зміст

Які 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)

Це виведе поточну дату й час на момент виконання у форматі РРРР-ММ-ДД ГГ:ХМ:СС.сссссс.

Python 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() :

Метод дозволяє форматувати об’єкти дати та часу як рядок. Нижче наведено приклад методу 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: вичерпний посібник із прикладами

  • strptime() :

Ця функція в класі 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 включають:

  • datetime.date.today()

Ця функція в класі дат дозволяє отримати поточну дату. Нижче наведено приклад отримання поточної дати за допомогою класу дат:

import datetime

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

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

Цей код Python виведе поточну дату на момент виконання у форматі РРРР-ММ-ДД.

Python Datetime: вичерпний посібник із прикладами

На момент написання цієї статті поточна дата була 22 травня 2023 року.

  • datetime.date()

Ця функція в класі дати дозволяє створювати об’єкти дати. Приклад демонструє створення спеціального об’єкта дати за допомогою функції 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: вичерпний посібник із прикладами

  • strptime()

Цей метод дозволяє розібрати рядок, що представляє дату, в об’єкт 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: вичерпний посібник із прикладами

Як використовувати клас часу

Клас Time дозволяє працювати з екземплярами часу (година, хвилина, секунда, мікросекунда). За допомогою класу часу ви можете створити спеціальний об’єкт часу за допомогою datetime.time().

У наступному прикладі демонструється створення спеціального об’єкта часу:

import datetime

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

print("Custom time: ", custom_time)

У datetime.time() ви надаєте годину та хвилину як аргументи.

Цей сценарій виведе 17:40:00, як зазначено в коді Python.

Python Datetime: вичерпний посібник із прикладами

Клас Time надає такі корисні методи, як:

  • strftime()

Цей метод дозволяє форматувати об’єкт часу як рядок. Нижче наведено приклад цієї функції:

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)

Це виведе місцевий час у форматі «Година:Хвилина».

Python Datetime: вичерпний посібник із прикладами

  • strptime()

Ця функція дозволяє аналізувати рядок, що представляє час, у об’єкт Time. Наступний приклад демонструє цю функцію:

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)

Це виведе об’єкти часу, створені з рядка часу.

Python Datetime: вичерпний посібник із прикладами

Як використовувати клас Timedelta

Клас Timedelta дозволяє представити тривалість або різницю між двома датами або часом.

За допомогою класу Timedelta ви можете виконувати такі операції:

  • Обчисліть різницю між двома датами або часом

Нижче наведено приклад розрахунку різниці між двома датами:

 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.

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

Реалізація функцій модуля DateTime у прикладі

Давайте розглянемо приклад прикладу, де нам надається набір даних про різні події, що відбулися в усьому світі. Набір даних має відповідні дати й час у рядковому форматі.

Наше завдання полягає в тому, щоб перетворити ці дати й час на об’єкти 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 шляхом об'єднання стовпців "Date" і "Time". Потім ми застосовуємо функцію datetime.strptime до кожного значення в цьому новому стовпці, щоб перетворити рядки дати й часу в об’єкти datetime. Нарешті, ми роздруковуємо DataFrame, щоб побачити результат.

Python Datetime: вичерпний посібник із прикладами

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

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

Цей сценарій Python обчислить тривалість між «подією 1» і «подією 2».

Python Datetime: вичерпний посібник із прикладами

Нарешті, давайте перетворимо об’єкти datetime в інший часовий пояс. Коли можна досягти цього за допомогою функцій Timezone у модулі 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 часто тримають сторінку документації відкритою, щоб знайти функції, які можуть задовольнити ваші потреби. І ми пропонуємо вам зробити те ж саме!

Додаткові функції дати та часу

У цьому розділі ми обговоримо додаткові функції в модулі datetime Python . Це включає в себе отримання назв днів тижня, місяця та днів тижня разом із функцією ctime() .

Як отримати дні тижня з дати

Модуль datetime містить функцію weekday() , яка повертає день тижня як ціле число (де понеділок дорівнює 0, а неділя – 6).

Щоб скористатися цією функцією, ви можете викликати її в об’єкті date або datetime.

import datetime

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

print(weekday_number)

Результат коду вище наведено на зображенні нижче:

Python Datetime: вичерпний посібник із прикладами

Поточна місцева дата – 23.05.2023, робочий день – понеділок.

Як отримати назви місяців і днів тижня з дати

datetime також дозволяє отримати назву місяця та дня тижня.

Ви можете використовувати функцію strftime() , яка форматує дату або об’єкт datetime як рядок.

Нижче наведено приклад того, як використовувати функцію 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 повертає рядкове представлення дати або об’єкта datetime у форматі «День Пн ДД ГГ:ММ:СС РРРР».

ctime — це метод для об’єкта datetime , а не окрема функція.

Нижче наведено приклад використання функції ctime у вашому коді:

import datetime

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

print(formatted_date)

Наведений вище код поверне рядкове представлення об’єкта дати.

Python Datetime: вичерпний посібник із прикладами

Щоб дізнатися більше про роботу з даними часових рядів, перегляньте це відео:

Заключні думки

Як програміст на Python важливо опанувати модуль datetime. Це набір інструментів, який дає змогу працювати з датами, часом і інтервалами часу. Це елементи, які ви часто зустрічаєте в даних реального світу.

Цей модуль вам знадобиться, щоб перетворювати рядки в об’єкти datetime, обробляти перетворення часових поясів і виконувати операції з датами й часом.

Навчившись використовувати модуль datetime, ви будете краще підготовлені до вирішення цих завдань у ваших власних проектах!


Змініть формати дати за допомогою редактора Power Query

Змініть формати дати за допомогою редактора Power Query

У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.

Power Query: об’єднайте файли з кількох папок

Power Query: об’єднайте файли з кількох папок

Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.

Створення таблиці дат у LuckyTemplates

Створення таблиці дат у LuckyTemplates

Дізнайтеся, чому важлива спеціальна таблиця дат у LuckyTemplates, і вивчіть найшвидший і найефективніший спосіб це зробити.

Мобільні звіти LuckyTemplates. Поради та методи

Мобільні звіти LuckyTemplates. Поради та методи

У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.

Звіти про професійну аналітику послуг у LuckyTemplates

Звіти про професійну аналітику послуг у LuckyTemplates

У цій презентації LuckyTemplates ми розглянемо звіти, що демонструють професійну аналітику послуг від фірми, яка має кілька контрактів і залучених клієнтів.

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.

Загальні функції SQL: огляд

Загальні функції SQL: огляд

Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.

Створення шаблону LuckyTemplates: керівництво та поради

Створення шаблону LuckyTemplates: керівництво та поради

У цьому підручнику ви дізнаєтеся, як створити свій ідеальний шаблон LuckyTemplates, налаштований відповідно до ваших потреб і вподобань.

Параметри полів і малі кратні в LuckyTemplates

Параметри полів і малі кратні в LuckyTemplates

У цьому блозі ми продемонструємо, як шарувати параметри поля з малими кратними, щоб створити неймовірно корисну інформацію та візуальні ефекти.