Методы объекта datetime.datetime()
dt.date():
Метод dt.date() возвращает объект datetime.date() с тем же годом, месяцем и днем.
>>> import datetime
>>> dt = datetime.datetime.now()
>>> dt.date()
# datetime.date(2020, 5, 6)dt.time():
Метод dt.time() возвращает объект datetime.time() с тем же часом, минутой, секундой, микросекундой, при этом параметр tzinfo будет равен None. Смотрите также метод datetime.timetz().
>>> import datetime
>>> dt = datetime.datetime.now()
>>> dt.time()
# datetime.time(9, 47, 7, 560533)dt.timetz():
Метод dt.timetz() возвращает объект datetime.time() с такими же атрибутами часа, минуты, секунды, микросекунды и tzinfo. Смотрите также метод datetime.time().
>>> import datetime
>>> dt = datetime.datetime.now()
>>> dt.timetz()
# datetime.time(9, 47, 7, 560533)
# если указать аргумент смещение `tz`
# то timetz() будет присутствовать в объекте
>>> delta = datetime.timedelta(hours=3)
>>> tz = datetime.timezone(delta)
>>> dt = datetime.datetime.now(tz=tz)
# datetime.time(9, 56, 14, 920298, \
# tzinfo=datetime.timezone(datetime.timedelta(0, 10800)))dt.replace(year=self.year, month=self.month, day=self.day, hour=self.hour, minute=self.minute, second=self.second, microsecond=self.microsecond, tzinfo=self.tzinfo, * fold=0):
Метод dt.replace() возвращает новый объект datetime.datetime() с теми же атрибутами, за исключением тех атрибутов, которым даны новые значения в зависимости от того, какие ключевые аргументы указаны.
Обратите внимание, что можно указать tzinfo=None для создания "наивного" объекта datetime.datetime() из "осведомленного" без преобразования данных даты и времени.
dt.astimezone(tz=None):
Метод dt.astimezone() возвращает новый объект datetime.datetime() с новым атрибутом tzinfo, скорректировав данные даты и времени таким образом, чтобы результатом было то же время UTC, но по местному времени tz.
Если указан аргумент
tz, то он должен быть экземпляром подклассаdatetime.tzinfo(), а его методыtzinfo.utcoffset()иtzinfo.dst()не должны возвращатьNone. Еслиself- "наивно", то предполагается, что оно представляет время в часовом поясе системы.Если вызывается без аргументов или с
tz=None, то системный часовой пояс местного времени принимается за целевой часовой пояс. Атрибут.tzinfoпреобразованного экземпляраdatetime.datetime()будет установлен на экземплярdatetime.timezone()с именем зоны и смещением, полученными из ОС.Если
self.tzinfoравноtz, аself.astimezone(tz)равноself: настройка даты или времени не выполняется. В противном случае результатом является местное время в часовом поясеtz, представляющее то же время в формате UTC, что и вself: послеastz = dt.astimezone(tz),astz - astz.utcoffset()будет иметь те же данные о дате и времени, что иdt - dt.utcoffset().Если вы просто хотите прикрепить объект часового пояса
tzкdatetime.datetime()без настройки даты и времени, используйтеdt.replace(tzinfo=tz).Если вы просто хотите удалить объект часового пояса из "осведомленного"
datetime.datetime()без преобразования даты и времени, используйтеdt.replace(tzinfo=None).
Обратите внимание, что метод tzinfo.fromutc() по умолчанию может быть переопределен в подклассе tzinfo, чтобы повлиять на результат, возвращаемый методом dt.astimezone(). действует так, что бы игнорировать ошибки datetime.astimezone():
dt.utcoffset():
Если tzinfo=None, то метод dt.utcoffset() возвращает None, иначе возвращает self.tzinfo.utcoffset(self) или вызывает исключение, если последний не возвращает None или объект timedelta со значением менее одного дня.
dt.dst():
Если tzinfo=None, то метод dt.dst() возвращает None, иначе возвращает self.tzinfo.dst(self) или вызывает исключение, если последний не возвращает None или объект timedelta со значением менее одного дня.
dt.tzname():
Если tzinfo=None, то метод dt.tzname() возвращает None, иначе возвращает self.tzinfo.tzname(self) или вызывает исключение, если последний не возвращает None или или строковый объект.
dt.timetuple():
Метод dt.timetuple() возвращает кортеж структуры времени time.struct_time, например такой же как возвращает time.localtime().
Метод dt.timetuple() эквивалентен:
где yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1 номер дня в текущем году, начиная с 1 для 1 января. Флаг tm_isdst кортежа структуры устанавливается в соответствии с методом dt.dst():
tm_isdstимеет значение -1, тоdt.dst()возвращаетNone;tm_isdstимеет значение 1, тоdt.dst()возвращает ненулевое значение;tm_isdstимеет значение 0.
dt.utctimetuple():
Если экземпляр dt - "наивен", то метод dt.utctimetuple() возвратит же самое, что и dt.timetuple(), за исключением того, что элемент структуры tm_isdst принудительно устанавливается в 0 независимо от того, что возвращает dt.dst(). DST никогда не действует в течение времени UTC.
Если dt - "осведомленный", то dt нормализуется к времени UTC, вычитая dt.utcoffset() и возвращается кортеж time.struct_time для нормализованного времени. Значение tm_isdst=0. Обратите внимание, что ошибка OverflowError может быть вызвана, если атрибут даты и времени dt.year равняется datetime.MINYEAR или datetime.MAXYEAR, а корректировки UTC превышают границу года.
Предупреждение. Поскольку "наивные" объекты datetime.datetime() обрабатываются многими методами как локальное время, то предпочтительно использовать "осведомленные" объекты datetime.datetime() для представления времени в UTC. В результате использование конструктора datetime.datetime.utcfromtimetuple() может привести к ошибочным результатам. Если у вас есть "наивный" объект datetime.datetime() представляющий UTC, то используйте dt.replace(tzinfo=timezone.utc), чтобы сообщить, в какой момент вы можете использовать dt.timetuple().
dt.toordinal():
Метод dt.toordinal() возвращает пролептический григорианский порядковый номер даты. Так же, как self.date().toordinal().
dt.timestamp():
Метод dt.timestamp() возвращает метку времени POSIX, соответствующую экземпляру datetime.datetime(). Возвращаемое значение - это число с плавающей точкой, аналогичное тому, которое возвращает time.time().
Предполагается, что "наивные" экземпляры datetime.datetime() представляют местное время, и для выполнения преобразования используется метод платформы C mktime(). Поскольку datetime.datetime() поддерживает более широкий диапазон значений, чем mktime() на многих платформах, этот метод может вызвать исключение OverflowError для времен, которые уже прошли или будут в будущем.
Для "осведомленных" экземпляров datetime.datetime() возвращаемое значение вычисляется как:
Примечание. Нет способа получить метку времени POSIX непосредственно из простого экземпляра datetime.datetime(), представляющего время UTC. Если ваше приложение использует это соглашение и системный часовой пояс не установлен на UTC, вы можете получитьвременную метку POSIX, указав tzinfo=timezone.utc:
dt.weekday():
Метод dt.weekday() возвращает день недели в виде целого числа, где понедельник = 0, а воскресенье = 6. То же, что self.date().weekday().
Смотрите также метод dt.isoweekday().
dt.isoweekday():
Метод dt.isoweekday() возвращает день недели в виде целого числа, где понедельник = 1, а воскресенье = 7. То же, что self.date().isoweekday().
Смотрите также методы dt.weekday() и dt.isocalendar().
dt.isocalendar():
Метод dt.isocalendar() возвращает именованный кортеж с тремя компонентами: год year, неделя week и день недели weekday. Так же, как self.date().isocalendar().
Изменено в Python 3.9: результат изменился с простого кортежа на именованный кортеж.
dt.isoformat(sep='T', timespec='auto'):
Метод dt.isoformat() возвращает строку, представляющую дату и время в формате ISO 8601:
YYYY-MM-DDTHH:MM:SS.ffffff, если микросекунда не равна 0
YYYY-MM-DDTHH:MM:SS, если микросекунда равна 0
Если dt.utcoffset() не возвращает None, добавляется строка, дающая смещение UTC:
YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]], если микросекунда не равна 0
YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]], если микросекунда равна 0
Examples:
Необязательный аргумент sep - по умолчанию 'T', представляет собой односимвольный разделитель, помещенный между датой и временем.
Необязательный аргумент timespec указывает количество дополнительных компонентов времени для включения, по умолчанию "auto".
Это может быть одно из следующих:
'auto': то же, что и'seconds', еслиdt.microsecondsравна 0, в противном случае как'milliseconds'.'hours': включает час в двузначном форматеHH.'minutes': включает час и минуты в форматеHH:MM.'seconds': включает час , минуты и секунды в форматеHH:MM:SS.'milliseconds': включает полный вариант вывода, но усекает вторую дробную часть до миллисекунд -HH:MM:SS.sss.'microseconds': включает полный вариант вывода -HH:MM:SS.ffffff.
Примечание. Компоненты исключенного времени будут отброшены, а не округлены.
Будет вызвано исключение ValueError, если аргумент timespec будет недопустимым.
dt.__str__():
Для экземпляра dt справедливо утверждение: str(dt) эквивалентно вызову dt.isoformat(sep=' ').
dt.ctime():
Метод dt.ctime() возвращает строку, представляющую дату и время:
Выходная строка не будет включать информацию о часовом поясе, независимо от того, является ли ввод "осведомленным" или "наивным".
Вызов метода dt.ctime() эквивалентен:
dt.strftime(format):
Метод dt.strftime() возвращает строку, представляющую дату и время, управляемую явной строкой формата.
Полный список директив форматирования смотрите в разделе "Поведение методов strftime() и strptime() модуля datetime".
Last updated