datetime¶
Модуль для работы с датой и временем
-
datetime.
MAXYEAR
¶ максимальный год
datetime.MAXYEAR # 9999
-
datetime.
MINYEAR
¶ минимальный год
datetime.MINYEAR # 1
date¶
- class
datetime.
date
(year, month, day)¶ дата
-
day
¶ возвращает день
date.today().day # 3
-
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'
-
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'
-
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
-
timezone¶
New in version 3.2.
Форматирование¶
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