Автор оригинала: Pankaj Kumar.
Класс Date Python является частью модуля DateTime.
Дата Питона
Объект Дата Python представляет собой дату (год, месяц и день) в календаре. 1 января 1 января называется день № 1, 2 января в год 1 называется Day Number 2 и так далее.
Мы можем создавать экземпляр даты, используя следующий заводский метод.
datetime.date(year, month, day)
Все аргументы являются обязательными и должны быть целыми в действительном диапазоне.
Значение года должно быть в диапазоне 1-9999, месяц должно быть в диапазоне 1-12 и день должно быть в диапазоне действительных дней в данном месяце года.
Если аргумент формирует неверную дату, то ValueError
будет поднят.
Python Создать экземпляр даты
Мы можем создавать экземпляр даты из заводского метода.
from datetime import date d = date(2018, 12, 25) print(d)
Выход: 2018-12-25
Есть несколько методов классов для создания экземпляра даты.
Создать сегодняшнюю дату
d = date.today() print(d)
Выход: 2018-09-18
Создать дату от времени
import time t = time.time() print(t) d = date.fromtimestamp(t) print(d) d = date.fromtimestamp(1537261418) print(d)
Выход:
1537265122.553337 2018-09-18 2018-09-18
Создать дату от ординала
d = date.fromordinal(366) print(d)
Выход: 0002-01-01.
Дата от строки ISO
Новый метод Preyisoformat ()
Был добавлен в Python 3.7 для создания экземпляра даты из строки ISO Format String. Входная строка должна быть в формате Yyyy-mm-dd
Отказ
# date from ISO string format, added in Python 3.7 d = date.fromisoformat('2018-09-19') print(d)
Дата класса Атрибуты
print(date.min) print(date.max) print(date.resolution)
Выход:
0001-01-01 9999-12-31 1 day, 0:00:00
Атрибуты экземпляра даты
Атрибуты экземпляра даты только для чтения.
d = date.today() print(d.year) print(d.month) print(d.day)
Выход:
2018 9 18
Дата Операции с TimeDelta
Объект даты поддерживает арифметические операторы с экземпляром TimeDelta для создания будущих и прошлых дат.
date_tomorrow = date.today() + timedelta(days=1) print(date_tomorrow) date_yesterday = date.today() - timedelta(days=1) print(date_yesterday) td = date_tomorrow - date_yesterday print(td) print(date_tomorrow > date_yesterday)
Выход:
2018-09-19 2018-09-17 2 days, 0:00:00 True
Методы экземпляра даты
Давайте посмотрим на некоторые методы экземпляра даты.
заменить (год = само), .ear, .month,. День)
Возвращает экземпляр даты с тем же значением, если только его новое значение не предоставляется через аргументы ключевых слов.
today = date.today() print(today) new_date = today.replace(year=2020) print(new_date)
Выход:
2018-09-18 2020-09-18
Расписание ()
Вернуть time.struct_time
экземпляр, то же самое, что возвращается time.localtime ()
Отказ
print(today.timetuple())
Выход:
time.struct_time(tm_year=2018, tm_mon=9, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=261, tm_isdst=-1)
Обратите внимание, что час, минуты и секунды значение всегда будут 0 и флаг DST всегда будет -1.
TOORDINAL ()
Возвращает порядковую стоимость экземпляра даты.
print(today.toordinal())
Выход: 736955.
будний день ()
Верните день недели как целое число, где в понедельник 0 и воскресенье – 6.
print(today.weekday()) # 2018-09-18 is Tuesday
Выход: 1.
isoweekday ()
Верните день недели как целое число, где в понедельник 1 и воскресенье – 7.
print(today.isoweekday())
Выход: 2.
Isocalendar ()
Возвращает кортеж (ISO год, номер ISO, ISO Weekday).
print(today.isocalendar())
Выход: (2018, 38, 2)
изоформат ()
Верните строку, представляющую дату в формате ISO 8601 I.E. «ГГГГ-ММ-ДД».
print(today.isoformat())
Выход: 2018-09-18
Ctime ()
Возвращает строку, представляющую экземпляр даты.
print(today.ctime())
Выход: Вт 18 00:00:00 2018
Дата Python для отформатированной строки
Мы можем использовать функцию strftime () для преобразования экземпляра даты в строку с указанным форматированием.
print(today.strftime('%Y/%m/%d'))
Выход: 2018/09/18
Python преобразовать строку на сегодняшний день
Мы можем использовать функцию DateTime STRPTIME () для преобразования строки в экземпляр DateTime. Затем мы можем использовать функцию даты () для преобразования в экземпляр даты.
from datetime import datetime dt = datetime.strptime('2018/09/18', '%Y/%m/%d').date() print(type(dt)) print(dt)
Выход:
2018-09-18
Ссылка: Официальная документация