Як обробляти дати та час у Python за допомогою datetime
Обробка дат і часу є звичайним завданням у програмуванні, і Python надає вбудований модуль під назвою datetime
для роботи з датами та часом. Цей модуль надає класи для маніпулювання датами, часом і часовими інтервалами, що полегшує виконання арифметики дат, форматування дат і керування часовими поясами. У цій статті ми розглянемо, як використовувати модуль datetime
для ефективної обробки дат і часу в Python.
Початок роботи з datetime
Модуль datetime
надає кілька класів, наприклад datetime.date
, datetime.time
, datetime.datetime
, datetime. timedelta
та datetime.tzinfo
. Ці класи дозволяють нам працювати з датами, часом і інтервалами часу.
Щоб почати використовувати модуль datetime
, його потрібно імпортувати:
import datetime
Робота з датами
Ви можете створити об’єкт дати за допомогою класу date
. Для цього потрібні три параметри: рік, місяць і день.
from datetime import date
# Create a date object
my_date = date(2023, 9, 4)
print(my_date) # Output: 2023-09-04
Ви також можете отримати доступ до окремих компонентів дати, таких як рік, місяць і день:
print(my_date.year) # Output: 2023
print(my_date.month) # Output: 9
print(my_date.day) # Output: 4
Робота з Times
Клас time
дозволяє створити об’єкт часу. Для цього потрібні години, хвилини, секунди та мікросекунди (необов’язково).
from datetime import time
# Create a time object
my_time = time(14, 30, 45)
print(my_time) # Output: 14:30:45
Подібно до дат, ви можете отримати доступ до окремих компонентів об’єкта часу:
print(my_time.hour) # Output: 14
print(my_time.minute) # Output: 30
print(my_time.second) # Output: 45
Поєднання дати й часу з datetime
Клас datetime
поєднує і дату, і час в один об’єкт. Ви можете створити об’єкт datetime
, передавши рік, місяць, день, годину, хвилину, секунду та мікросекунду (необов’язково).
from datetime import datetime
# Create a datetime object
my_datetime = datetime(2023, 9, 4, 14, 30, 45)
print(my_datetime) # Output: 2023-09-04 14:30:45
Ви можете отримати доступ до компонентів дати та часу об’єкта datetime
:
print(my_datetime.date()) # Output: 2023-09-04
print(my_datetime.time()) # Output: 14:30:45
Отримання поточної дати та часу
Модуль datetime
надає зручні методи отримання поточної дати, часу або обох:
# Current date
today = date.today()
print(today) # Output: (current date)
# Current date and time
now = datetime.now()
print(now) # Output: (current date and time)
Арифметика дати з timedelta
Клас timedelta
представляє тривалість, яка є різницею між двома датами або часом. Це дозволяє виконувати арифметику дати, наприклад додавати або віднімати дні від дати.
from datetime import timedelta
# Create a timedelta object
delta = timedelta(days=7)
# Add 7 days to the current date
future_date = today + delta
print(future_date)
Ви також можете обчислити різницю між двома датами:
# Calculate the difference between two dates
date1 = date(2023, 9, 4)
date2 = date(2023, 9, 11)
difference = date2 - date1
print(difference.days) # Output: 7
Форматування дат і часу
Метод strftime()
дозволяє форматувати дату або час у рядок. Цей метод використовує код формату, щоб визначити потрібний формат:
# Format a date object
formatted_date = today.strftime('%B %d, %Y')
print(formatted_date) # Output: September 04, 2023
Загальні коди формату включають:
%Y
- рік (наприклад, 2023)%m
- місяць як десяткове число з доповненням нуля (наприклад, 09)%d
– день місяця як десяткове число з доповненням нуля (наприклад, 04)%H
- година (24-годинний годинник) як десяткове число з доповненням нуля (наприклад, 14)%M
- хвилина як десяткове число з доповненням нуля (наприклад, 30)%S
– секунда як десяткове число з доповненням нуля (наприклад, 45)
Розбір дат із рядків
Метод strptime()
дозволяє конвертувати рядок в об’єкт datetime
, враховуючи формат рядка дати:
# Parse a date from a string
date_str = '2023-09-04'
parsed_date = datetime.strptime(date_str, '%Y-%m-%d')
print(parsed_date)
Робота з часовими поясами
Модуль datetime
підтримує об’єкти datetime
з урахуванням часового поясу за допомогою бібліотеки pytz
. Для роботи з часовими поясами необхідно встановити pytz
:
pip install pytz
Потім ви можете призначити часовий пояс об’єкту datetime
:
from datetime import datetime
import pytz
# Set timezone to UTC
utc_zone = pytz.utc
now_utc = datetime.now(utc_zone)
print(now_utc)
Висновок
Модуль datetime
у Python надає потужні інструменти для обробки дат і часу, включаючи створення, форматування, аналіз і виконання арифметичних дій з об’єктами дати й часу. Незалежно від того, чи потрібно вам маніпулювати датами, працювати з часовими поясами чи форматувати дати й час для відображення, модуль datetime
допоможе вам.