import datetime time = datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
Все аргументы необязательны. Аргумент tzinfo
может быть None
или экземпляром подкласса datetime.tzinfo
. Остальные аргументы должны быть целыми числами в следующих диапазонах:
hour=0
- час в пределах 0 <= hour < 24
,minute=0
- минута в пределах 0 <= minute < 60
, second=0
- секунда в пределах 0 <= second < 60
,microsecond=0
- микросекунда в пределах 0 <= microsecond < 60
, tzinfo=None
- может быть None
или экземпляром подкласса datetime.tzinfo
. Дополнительно смотрите модуль zoneinfo
(добавлен в Python 3.9) - конкретная реализация часового пояса для поддержки базы данных часовых поясов IANA,fold=0
- 0 или 1.Если задан аргумент вне этих диапазонов, вызывается исключение ValueError
. Все аргументы по умолчанию 0, кроме tzinfo
, который по умолчанию None
.
datetime.time()
.Класс time()
модуля datetime
представляет собой (локальное) время, независимое от какого-либо конкретного дня и подлежащее настройке с помощью объекта datetime.tzinfo()
(смотрите также модуль zoneinfo
- добавлен в Python 3.9).
Объекты datetime.time()
поддерживают сравнение. Объект time1
считается меньше, чем объект time2
, когда time1
предшествует во времени time2
.
time1
c параметром tzinfo
не равным None
с объектом time2
, у которого параметр tzinfo=None
, вызывается исключение TypeError
.time1
c параметром tzinfo
не равным None
никогда не будут равен объекту time2
, у которого параметр tzinfo=None
.datetime.time()
имеют параметр tzinfo
не равным None
и имеют один и тот же атрибут tzinfo
, то общий атрибут tzinfo
игнорируется, и сравнивается базовое время. datetime.time()
имеют параметр tzinfo
не равным None
и имеют разные атрибуты tzinfo
, сопоставления сначала корректируются путем вычитания их смещений UTC, полученных из self.utcoffset()
. Атрибуты экземпляра класса datetime.time()
, доступны только для чтения:
time.hour
- возвращает часы в диапазоне range(24)
,time.minute
- возвращает минуты в диапазоне range(60)
,time.second
- возвращает секунды в диапазоне range(60)
,time.microsecond
- возвращает микросекунды в диапазоне range(1000000)
.time.tzinfo
- возвращает объект, переданный в качестве аргумента tzinfo
или None
.time.fold
- возвращает зимнее 0 или летнее 1 время. Используется для устранения неоднозначности времени в момент перехода с зимнего на летнее время и обратно, когда смещение UTC для текущей зоны уменьшается или увеличивается.>>> import datetime >>> time = datetime.time(22, 45, 15) >>> time # datetime.time(22, 45, 15) >>> print(time.hour, time.minute, time.second, time.microsecond) # 22 45 15 0
datetime.time()
из строки ISO 8601:datetime.time.fromisoformat(time_string)
:Метод datetime.time.fromisoformat()
Возвращает время, соответствующее строке time_string
, в любом допустимом формате ISO 8601 со следующими исключениями:
T
, обычно требуемая в случаях, когда может быть неоднозначность между датой и временем, не требуется.Изменено в Python 3.11: ранее этот метод поддерживал только форматы, которые могли быть созданы функцией time.isoformat()
.
Примеры:
>>> from datetime import time >>> time.fromisoformat('04:23:01') # datetime.time(4, 23, 1) >>> time.fromisoformat('T04:23:01') # datetime.time(4, 23, 1) >>> time.fromisoformat('T042301') # datetime.time(4, 23, 1) >>> time.fromisoformat('04:23:01.000384') # datetime.time(4, 23, 1, 384) >>> time.fromisoformat('04:23:01,000') # datetime.time(4, 23, 1, 384) >>> time.fromisoformat('04:23:01+04:00') # datetime.time(4, 23, 1, tzinfo=datetime.timezone(datetime.timedelta(seconds=14400))) >>> time.fromisoformat('04:23:01Z') # datetime.time(4, 23, 1, tzinfo=datetime.timezone.utc) >>> time.fromisoformat('04:23:01+00:00') # datetime.time(4, 23, 1, tzinfo=datetime.timezone.utc)
time()
:time()
time.replace()
,time.isoformat()
,time()
time.__str__()
,time()
time.strftime()
,timedelta()
time.utcoffset()
,time.dst()
,time.tzname()
.time.replace(hour=self.hour, minute=self.minute, second=self.second, microsecond=self.microsecond, tzinfo=self.tzinfo, * fold=0)
:Метод time.replace()
возвращает datetime.time()
с тем же значением, за исключением тех атрибутов, которым даны новые значения в зависимости от того, какие ключевые аргументы указаны. Обратите внимание, что для создания "наивного" datetime.time()
из "осведомленного" без преобразования данных времени необходимо задать tzinfo=None
.
time.isoformat(timespec='auto')
:Метод time.isoformat()
возвращает строку, представляющую время в формате ISO 8601:
HH:MM:SS.ffffff
, если микросекунда не равна 0,HH:MM:SS
, если микросекунда равна 0,HH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]
, если метод time.utcoffset()
не возвращает None
,HH:MM:SS+HH:MM[:SS[.ffffff]]
, если микросекунда равна 0 и метод time.utcoffset()
не возвращает None
.Необязательный аргумент timespec
указывает количество дополнительных компонентов времени, по умолчанию 'auto'
.
Аргумент timespec
может быть один из следующих значений:
'auto'
: то же, что и 'seconds'
если time.microseconds
равна 0, в противном случае как 'microseconds'
.'hours'
: включает час в двузначном формате HH
.'minutes'
: включает час и минуты в формате HH:MM.'seconds'
: включает час , минуты и секунды в формате HH:MM:SS.'milliseconds'
: включает полный вариант вывода, но усекает вторую дробную часть до миллисекунд - HH:MM:SS.sss.'microseconds'
: включает полный вариант вывода - HH:MM:SS.ffffff.Note Excluded time components are truncated, not rounded.Примечание. Компоненты исключенного времени будут отброшены, а не округлены.
Будет вызвано исключение ValueError
, если аргумент timespec
будет недопустимым.
>>> import datetime >>> time = datetime.time(hour=12, minute=34, second=56, microsecond=123456) >>> time.isoformat(timespec='minutes') # '12:34' >>> time = datetime.time(hour=12, minute=34, second=56, microsecond=0) >>> time.isoformat(timespec='microseconds') # '12:34:56.000000' >>> time.isoformat(timespec='auto') # '12:34:56'
time.__str__()
:Для экземпляра time
справедливо утверждение: str(time)
эквивалентно вызову time.isoformat(timespec=' ')
.
>>> import datetime >>> dt = datetime.datetime.now() >>> time = dt.time() >>> time # datetime.time(17, 26, 46, 552992) >>> time.__str__() # '17:26:46.552992' >>> str(time) # '17:26:46.552992' >>> time.isoformat() # '17:26:46.552992'
time.strftime(format)
:Метод time.strftime()
возвращает строку, представляющую время, управляемую явной строкой формата.
Полный список директив форматирования смотрите в разделе "Поведение методов strftime()
и strptime()
модуля datetime
".
>>> import datetime >>> dt = datetime.datetime.now() >>> time = dt.time() >>> time.strftime('%H:%M:%S') # '17:26:46' >>> time.strftime('%H часов %M минут %S секунд') # '17 часов 26 минут 46 секунд' >>> time.strftime('%H:%M') # '17:26'
time.utcoffset()
:Если tzinfo
равен None
, то метод time.utcoffset()
возвращает None
, иначе возвращает self.tzinfo.utcoffset(None)
или вызывает исключение, если последний не возвращает None
или объект timedelta
со значением менее одного дня.
>>> import datetime >>> dt = datetime.datetime.now() >>> time = dt.time() >>> print(time.utcoffset()) # None
time.dst()
:Если tzinfo
равен None
, то метод time.dst()
возвращает None
, иначе возвращает self.tzinfo.dst(None)
или вызывает исключение, если последнее выражение не возвращает None
или объект timedelta
со значением менее одного дня.
>>> import datetime >>> dt = datetime.datetime.now() >>> time = dt.time() >>> print(time.dst()) # None
time.tzname()
:Если tzinfo
равен None
, то метод time.tzname()
возвращает None
, иначе возвращает self.tzinfo.tzname(None)
или вызывает исключение, если последний не возвращает None или строковый объект.
>>> import datetime >>> dt = datetime.datetime.now() >>> time = dt.time() >>> print(time.tzname()) # None
datetime.time()
:>>> from datetime import time, tzinfo, timedelta >>> class TZ1(tzinfo): ... def utcoffset(self, dt): ... return timedelta(hours=1) ... def dst(self, dt): ... return timedelta(0) ... def tzname(self,dt): ... return "+01:00" ... def __repr__(self): ... return f"{self.__class__.__name__}()" ... >>> t = time(12, 10, 30, tzinfo=TZ1()) >>> t # datetime.time(12, 10, 30, tzinfo=TZ1()) >>> t.isoformat() # '12:10:30+01:00' >>> t.dst() # datetime.timedelta(0) >>> t.tzname() # '+01:00' >>> t.strftime("%H:%M:%S %Z") # '12:10:30 +01:00' >>> 'The {} is {:%H:%M}.'.format("time", t) # 'The time is 12:10.