You are currently viewing Python DateTime – Класс DateTime

Python DateTime – Класс DateTime

Класс DateTime модуля DateTime, как следует из названия, содержит информацию как о дате, так и о времени. Как и объект даты, DateTime предполагает, что текущий григорианский календарь расширен в обоих направлениях; как и объект времени, DateTime предполагает, что в каждом дне ровно 3600*24 секунды. Но в отличие от класса date, объекты класса DateTime являются потенциально осведомленными объектами, т. е. они также содержат информацию о часовом поясе.

Синтаксис:

class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)

Аргументы года, месяца и дня являются обязательными. tzinfo может быть None, остальные все атрибуты должны быть целыми числами в следующем диапазоне:

  • MINYEAR(1) <= year <= MAXYEAR(9999)
  • 1 <= month <= 12
  • 1 <= day <= number of days in the given month and year
  • 0 <= hour < 24
  • 0 <= minute < 60
  • 0 <= second < 60
  • 0 <= microsecond < 1000000
  • fold in [0, 1]

Примечание: Передача аргумента, отличного от integer, вызовет ошибку типа, а передача аргументов за пределы диапазона вызовет ошибку значения.

Пример: 

Создание экземпляра класса DateTime

# Python program to
# demonstrate datetime object

from datetime import datetime

# Initializing constructor
a = datetime(2022, 10, 22)
print(a)

# Initializing constructor
# with time parameters as well
a = datetime(2022, 10, 22, 6, 2, 32, 5456)
print(a)

Выход:

2022-10-22 00:00:00
2022-10-22 06:02:32.005456

Атрибуты класса

Давайте посмотрим на атрибуты, предоставляемые этим классом:

Имя атрибутаОписание
минутаМинимальное представимое время-дата
максимумМаксимальное представимое время-дата
разрешениеМинимально возможная разница между объектами datetime
годДиапазон года должен быть между МИНИМАЛЬНЫМ и МАКСИМАЛЬНЫМ ГОДОМ
месяцДиапазон месяцев должен быть от 1 до 12
деньДиапазон дней должен быть от 1 до количества дней в данном месяце данного года
часДиапазон часов должен быть от 0 до 24 (не включая 24)
минутаДиапазон минут должен быть от 0 до 60 (не включая 60)
второйДиапазон секунд должен быть от 0 до 60 (не включая 60)
микросекундаДиапазон микросекунд должен быть от 0 до 1000000 (не включая 1000000).
tzinfoОбъект, содержащий информацию о часовом поясе
сгибатьПредставляет, произошла ли складка за это время или нет

Пример 1. 

Получение минимального и максимального представимого объекта DateTime

from datetime import datetime

# Getting min datetime
mindatetime = datetime.min
print("Min DateTime supported", mindatetime)

# Getting max datetime
maxdatetime = datetime.max
print("Max DateTime supported", maxdatetime)

Выход:

Минимальное поддерживаемое время 0001-01-01 00:00:00
Максимальная поддержка даты и времени 9999-12-31 23:59:59.999999

Пример 2. 

Доступ к атрибутам объекта даты и времени

from datetime import datetime

# Getting Today's Datetime
today = datetime.now()

# Accessing Attributes
print("Day: ", today.day)
print("Month: ", today.month)
print("Year: ", today.year)
print("Hour: ", today.hour)
print("Minute: ", today.minute)
print("Second: ", today.second)

Выход:

День: 26
Месяц: 7
Год выпуска: 2021
Час: 16
Минута: 24
Второе: 7

Функции класса

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

Список методов класса DateTime

Имя функцииОписание
astimezone()Возвращает объект DateTime, содержащий информацию о часовом поясе.
combine()Объединяет объекты даты и времени и возвращает объект DateTime
ctime()Возвращает строковое представление даты и времени
date()Возвращает объект класса Date
fromisoformat()Возвращает объект datetime из строкового представления даты и времени
fromordinal()Возвращает объект даты из пролептического григорианского порядкового номера, где 1 января 1 года имеет порядковый номер 1. Час, минута, секунда и микросекунда равны 0
fromtimestamp()Дата и время возврата из метки времени POSIX
isocalendar()Возвращает кортеж год, неделю и день недели
isoformat()Возвращает строковое представление даты и времени
isoweekday()Возвращает день недели в виде целого числа, где понедельник равен 1, а воскресенье-7
now()Возвращает текущую локальную дату и время с параметром tz
replace()Изменяет конкретные атрибуты объекта DateTime
strftime()Возвращает строковое представление объекта DateTime в заданном формате
strptime()Возвращает объект DateTime, соответствующий строке даты
time()Возвращает объект класса Time
timetuple()Возвращает объект типа time.struct_time
timetz()Возвращает объект класса Time
today()Возвращает локальную дату и время с tzinfo как Нет
toordinal()Возвращает пролептический григорианский порядковый номер даты, где 1 января 1 года имеет порядковый номер 1
tzname()Возвращает название часового пояса
utcfromtimestamp()Возврат UTC из метки времени POSIX
utcoffset()Возвращает смещение UTC
utcnow()Возвращает текущую дату и время UTC
weekday()Возвращает день недели в виде целого числа, где понедельник равен 0, а воскресенье-6

Пример 1: 

Получение сегодняшней даты

from datetime import datetime

# Getting Today's Datetime
today = datetime.now()
print("Today's date using now() method:", today)

today = datetime.today()
print("Today's date using today() method:", today)

Выход:

Сегодняшняя дата с использованием метода now (): 2021-07-26 22:23:22.725573

Сегодняшняя дата с использованием метода today (): 2021-07-26 22:23:22.725764

Пример 2: 

Получение даты-времени из метки времени и порядкового номера

from datetime import datetime

# Getting Datetime from timestamp
date_time = datetime.fromtimestamp(1887639468)
print("Datetime from timestamp:", date_time)

# Getting Datetime from ordinal
date_time = datetime.fromordinal(737994)
print("Datetime from ordinal:", date_time)

Выход:

Дата и время с отметкой времени: 2029-10-25 16:17:48
Дата и время с порядкового номера: 2021-07-23 00:00:00