datetime

Модуль для работы с датой и временем

datetime.MAXYEAR

максимальный год

datetime.MAXYEAR
# 9999
datetime.MINYEAR

минимальный год

datetime.MINYEAR
# 1

date

class datetime.date(year, month, day)

дата

day

возвращает день

date.today().day
# 3
max

возвращает date максимально возможную дату

date.max
# date(9999, 12, 31)
min
date.min
# date(1, 1, 1)
month

возвращает месяц

date.today().month
# 5
resolution
date.resolution
# timedelta(days=1)
year

возвращает год

date.today().year
# 2017
static fromisoformat(date_string)

New in version 3.7.

static fromordinal(dates)

возвращает дату date, соответствующую количеству дней, прошедших с 1 года

date.max.toordinal()
# 3652059

date.fromordinal(3652059)
# date(9999, 12, 31)

date.fromordinal(1)
# date(1, 1, 1)
static fromtimestamp(seconds)

возвращает дату date, соответствующую количеству секунд, прошедших с начала эпохи

datetime.date.fromtimestamp(time.time())
# date(2014, 8, 24)

datetime.date.fromtimestamp(1233368623.0)
# date(2009, 1, 31)
static isoformat(date)

Возвращает строку, дату в исо формате

date.isoformat(date.today())
# '2017-03-05'
ctime()

возвращает строку специального формата

date.ctime()
# 'Sun Jun 5 00:00:00 2011'
isocalendar()

возвращает кортеж из 3х элементов (год, номер недели и порядковый номер дня в неделе)

date.today().isocalendar()
# (2019, 37, 4)
isoformat()

возвращает дату в формате ГГГГ-ДД-ММ

date.today().isoformat()
# '2019-09-12'
isoweekday()

возвращает порядковый номер дня недели (начинается с 1)

date.today().isoweekday()
# 4
replace(year, month, day)

возвращает дату с обновленными значемниями

date.today()
# date(2019, 9, 12)

date.today().replace(2020)
# date(2020, 9, 12)
strftime(dt_format)

возвращает отформатированную строку

date.today().strftime('%Y-%m-%d')
# '2019-09-12'
timetuple()

возвращает time.struct_time с датой и временем

date.today().timetuple()
# time.struct_time(tm_year=2019, tm_mon=9, tm_mday=12, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=255, tm_isdst=-1)
static today()

Возвращает datetime.date, текущую дату

date.today()
# datetime.date(2017, 5, 3)
toordinal()

возвращает количесвто дней, прошедших с 1 года

date.today().toordinal()
# 737314
weekday()

возвращает порядковый номер дня в недели (начинается с 0)

date.today().weekday()
# 3

datetime

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

дата и время

year

год

month

месяц

day

день

fold

New in version 3.6.

hour

часы

max
datetime.max
# datetime(9999, 12, 31, 59, 59, 999999)
microsecond

микросекунды

min
datetime.min
# datetime(1, 1, 1)
minute

минуты

resolution
datetime.resolution
# timedelta(microsecond=1)
second

секунды

tzinfo

временная зона

classmethod combine(date, time)

создает экземпляр класса в соответствии со значениями экземпляров класса date и time

datetime.combine(date.today(), time(11, 10))
# datetime(2019, 9, 12, 11, 10)
static fromisoformat(date_string)

New in version 3.7.

classmethod fromordinal(days)

возвращает дату, соответсвующую количесвту дней, прошедших с 1 года

datetime.fromordinal(1)
# datetime(1, 1, 1, 0, 0)
classmethod fromtimestamp(seconds, tz=None)

возвращает дату, соотвествующую количесвтоу секунд с начала эпохи

datetime.fromtimestamp(time.time())
# datetime(2014, 8, 24, 0, 0)

datetime.fromtimestamp(1233368623.0)
# datetime(2009, 1, 31, 0, 0)
classmethod now(tz)

возвращает текущую дату и время

datetime.now()
# datetime(2019, 9, 12, 0, 0)
classmethod strptime(date_str, date_format)

разбирает строку с датой в соответсвии со строкой формата

datetime.strptime('2019-09-12', '%Y-%m-%d')
# datetime(2019, 9, 12, 0, 0)
classmethod today()

возвращает текущую дату и время

datetime.today()
# datetime(2019, 9, 12, 6, 54, 47, 320298)
classmethod utcfromtimestamp(seconds)

dозвращает дату, соответствующую количесвту секунд, прошедших с начала эпохи в универсальном времени (UTC)

datetime.utcfromtimestamp(1)
# datetime(1970, 1, 1, 0, 0, 1)
classmethod utcnow()

возвращает текущее универсальное время (UTC)

datetime.utcnow()
# datetime(2019, 9, 12, 3, 55, 59, 579073)
astimezone(tz=None)

Возвращает новый экземпляр даты с измененной таймзоной

ctime()

возвращает строку специального формата

datetime.now().ctime()
# 'Fri Sep 13 06:57:23 2019'
date()

возврашает дату в формате date

datetime.now().date()
# date(2019, 9, 13)
dst()
isocalendar()

возвращает кортеж из трех элементов (год, номер недели в году и порядковый номер дня в неделе)

datetime.now().isocalendar()
# (2019, 37, 5)
isoformat(sep='T', timespec='auto')

dозвращает дату в формате ISO 8601

datetime.now().isoformat()
# '2019-09-13T06:57:23.687795'
isoweekday()

возвращает порядковый номер дня недели (начинается с 1)

datetime.now().isoweekday()
# 5
replace(year, month, day, hour, minute, second, microsecond, tzinfo, fold=0)

New in version 3.6: добален параметр fold

возвращает дату с обновленными значениями

datetime.now()
# datetime(2019, 9, 12, 0, 0)

datetime.now().replace(2020)
# datetime(2020, 9, 12, 0, 0)
strftime(format_sr)

возвращает отформатированную строку

datetime.now().strftime('%d-%m-%Y')
# '12-09-2019'
time()

возвращает время в формате time

datetime.now().time()
# time(6, 57, 23, 687795)
timestamp()
timetuple()

возвращает дату и время в формате struct_time

datetime.now().timetuple()
# time.struct_time(tm_year=2019, tm_mon=9, tm_mday=13, tm_hour=6, tm_min=57, tm_sec=23, tm_wday=4, tm_yday=256, tm_isdst=-1)
timetz()

возвращает время в формате time с учетом временной зоны

datetime.now().timetz()
# time(6, 57, 23, 687795)
toordinal()

возвращает количесвто дней с 1 года

datetime.now().toordinal()
# 737315
tzname()
utcoffset()
utctimetuple()

возвращает дату и время в формате struct_time в универсальном времене

datetime.now().utctimetuple()
# time.struct_time(tm_year=2019, tm_mon=9, tm_mday=13, tm_hour=6, tm_min=57, tm_sec=23, tm_wday=4, tm_yday=256, tm_isdst=0)
weekday()

возвращает порядковый номер дня в недели (начинается с 0)

datetime.now().weekday()
# 4

time

class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, fold=0)

время

fold
hour

часы

max
time.max
# time(23, 59, 59, 999999)
microsecond

микросекунды

min
time.min
# time(0, 0, 0, 0)
minute

минуты

second

секунды

tzinfo

информаиця о временной зоне

dst()
fromisoformat(time_str)
isoformat(timespec='auto')

возвращает время в формате ISO 8601

  • auto - по умолчанию

  • hours - HH

  • minutes - HH:MM

  • seconds - HH:MM:SS

  • milliseconds - HH:MM:SS.sss

  • microseconds - HH:MM:SS.ffffff

time(23, 12, 38, 375000).isoformat()
# '23:12:38.375000'

time(23, 12, 38, 375000).isoformat('hours')
# '23'

time(23, 12, 38, 375000).isoformat('minutes')
# '23:12'

time(23, 12, 38, 375000).isoformat('seconds')
# '23:12:38'

time(23, 12, 38, 375000).isoformat('milliseconds')
# '23:12:38.000'

time(23, 12, 38, 375000).isoformat('microseconds')
# '23:12:38.000001'
replace(hour, minute, second, microsecond, tzinfo)

возвращает время с обновленными значениями

strftime(format_str)

возвращает отформатированную строку

tzname()
utcoffset()

timedelta

class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

дата в виде количесвта дней, секунд и микросекунд

timedelta(days=2) + timedelta(days=7)
# timedelta(9)

timedelta(days=7) - timedelta(days=2)
# timedelta(5)

timedelta(days=7) / timedelta(days=2)
# 3.5

timedelta(days=2) * 2
# datetime.timedelta(4)

timedelta(days=7) * 2
# timedelta(14)

timedelta(days=2) / 2,
# datetime.timedelta(1)

timedelta(days=2) / 2.5
# datetime.timedelta(2, 69120)

timedelta(days=7) // timedelta(days=2)
# 3

timedelta(days=2) // 2
# timedelta(1)

timedelta(days=7) // 2
# timedelta(3, 43200)

timedelta(days=7) % timedelta(days=2)
# timedelta(1)
timedelta(days=2) == timedelta(days=7)
# False

timedelta(days=7) == timedelta(weeks=1)
# True

timedelta(days=2) != timedelta(days=7)
# True

timedelta(days=7) != timedelta(weeks=1)
# False

timedelta(days=2) < timedelta(days=7)
# True

timedelta(days=7) <= timedelta(weeks=1)
# True

timedelta(days=2) > timedelta(days=7)
# False

timedelta(days=7) <= timedelta(weeks=1)
# True
days

количество дней

min
timedelta.max
# timedelta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999)
min
timedelta.min
# timedelta(-999999999)
microseconds

количесвто микросекунд

resolution
timedelta.resolution
# timedelta(microseconds=1)
seconds

количесвто секунд

total_seconds()

возвращает результат в секундах

New in version 3.2.

timedelta(days=365).total_seconds()
# 31536000.0

tzinfo

class datetime.tzinfo

зона времени

dst(dt)
fromutc(dt)
tzname(dt)
utcoffset(dt)

timezone

New in version 3.2.

class datetime.timezone(offset, name=None)

зона времени

utc
fromutc(dt)
dst(dt)
tzname(dt)
utcoffset(dt)

Форматирование

  • a - день недели сокращенный, Sun - Sat

  • A - день недели полный, Sunday - Saturday

  • w - день недели в числовом виде, 0 - 6

  • d - день недели с ноликом, 01 - 31

  • b - месяц сокращенный, Jan - Dec

  • B - месяц полный, January - December

  • m - месяц в числовом виде, 01 - 12

  • y - год бес тысячелетия, 01 - 99

  • Y - год с тысячелетием, 0001 - 9999

  • H - часы в 24 часовом формате, 01 - 23

  • I - часы в 12 часовм формате, 01 - 12

  • p - am/pm

  • M - минуты, 00 - 59

  • S - секунды, 00 - 59

  • f - микросекунды, 00000 - 999999

  • z - utc офсет, +0000, -0400, +1030

  • Z - название таймзоны, UTC, EST, CST

  • j - номер дня недели в году, 001 - 366

  • U - номер недели в году, из расчета воскресенье первый день недели, 00 - 53

  • W - номер недели в году, из расчета понедельник первый день недели, 00 - 53

  • c - локальное представление время, Tue Aug 16 21:30:00 1988

  • x - локальное представление даты, 08/16/1988

  • X - локальное представление времени, 21:30:00