5 простых способов извлечь год из объекта datetime в Python

Работа с датами и временем — распространенная задача в программировании, и Python предоставляет мощные инструменты для ее решения. Одним из распространенных требований является извлечение года из объекта datetime. В этой статье мы рассмотрим несколько простых методов выполнения этой задачи. Итак, хватайте свой любимый напиток и вперед!

Метод 1: использование функции strftime()
Функция strftime() позволяет форматировать объекты datetime в строки. Чтобы извлечь год, вы можете использовать директиву «%Y», которая представляет четырехзначный год. Вот пример:

import datetime
date_obj = datetime.datetime.now()
year = date_obj.strftime("%Y")
print(year)  # Output: 2024

Метод 2: использование атрибута года
Объекты Datetime в Python имеют встроенный атрибут года, который напрямую указывает год. Вот пример:

import datetime
date_obj = datetime.datetime.now()
year = date_obj.year
print(year)  # Output: 2024

Метод 3. Использование библиотеки pandas
Если вы работаете с большими наборами данных или вам нужны более продвинутые возможности манипулирования датами, библиотека pandas — отличный выбор. Вы можете преобразовать объект datetime в временную метку pandas, а затем извлечь год, используя атрибут года. Вот пример:

import pandas as pd
date_obj = pd.Timestamp.now()
year = date_obj.year
print(year)  # Output: 2024

Метод 4: использование функции Split()
Если у вас есть объект datetime, хранящийся в виде строки, вы можете разделить его и извлечь компонент года. Вот пример:

date_str = "2024-01-22"
year = date_str.split("-")[0]
print(year)  # Output: 2024

Метод 5: использование функции astype() (pandas)
Если у вас есть столбец DataFrame pandas с объектами datetime, вы можете использовать функцию astype(), чтобы преобразовать его в тип datetime64[ns], а затем извлечь год. Вот пример:

import pandas as pd
df = pd.DataFrame({"date_column": ["2024-01-22", "2023-05-10", "2022-09-01"]})
df["date_column"] = df["date_column"].astype('datetime64[ns]')
df["year"] = df["date_column"].dt.year
print(df["year"])  # Output: 2024, 2023, 2022