Python функции работы датой

Работа с датой и временем в Python

В Python есть два модуля для работы с датой в временем: datetime и time .

Модуль datetime

Модуль datetime содержит классы:

Также существует класс tzinfo , который применяется для работы с часовыми поясами.

Класс datetime.date

Класс datetime.date принимает три аргумента: год, месяц и день.

>>> import datetime >>> date = datetime.date(2017, 4, 2) >>> date.year 2017 >>> date.month 4 >>> date.day 2

Давайте посмотрим, какой сейчас день:

>>> today = datetime.date.today() >>> today.year 2018 >>> today.month 4 >>> today.day 21

Класс datetime.datetime

Класс datetime.datetime принимает аргументы: год, месяц, день, час, минута, секунда и микросекунда.

>>> date_time = datetime.datetime(2017, 4, 21, 13, 30, 10) >>> date_time.year 2017 >>> date_time.month 4 >>> date_time.day 21 >>> date_time.hour 13 >>> date_time.minute 30 >>> date_time.second 10

Давайте посмотрим, какое сейчас время:

>>> today = datetime.datetime.today() >>> today datetime.datetime(2018, 4, 21, 12, 43, 27, 786725) >>> today.hour 12 >>> today.minute 43
>>> datetime.datetime.now() # местное время datetime.datetime(2018, 4, 24, 13, 2, 39, 17479) >>> datetime.datetime.utcnow() # время по Гринвичу datetime.datetime(2018, 4, 24, 10, 2, 47, 46330)

Получить из объекта datetime отдельно дату и отдельно время:

>>> today = datetime.datetime.today() >>> today datetime.datetime(2018, 4, 21, 13, 26, 54, 387462) >>> today.date() # отдельно дата datetime.date(2018, 4, 21) >>> today.time() # отдельно время datetime.time(13, 26, 54, 387462)

Классы datetime.date и datetime.datetime содержат метод strftime() , который позволяет создавать строку, отображающую время в более понятной для человека форме.

>>> today = datetime.date.today().strftime("%d.%m.%Y") >>> today '21.04.2018'
>>> import locale >>> locale.setlocale(locale.LC_ALL, "ru") # задаем локаль для вывода даты на русском языке 'ru' >>> today = datetime.datetime.today().strftime("%A, %d.%m.%Y") >>> today 'суббота, 21.04.2018'
%a Сокращенное название дня недели
%A Полное название дня недели
%b Сокращенное название месяца
%B Полное название месяца
%c Дата и время
%d День месяца [01,31]
%H 24-часовой формат часа [00,23]
%I 12-часовой формат часа [01,12]
%j День года. Цифровой формат [001,366]
%m Номер месяца. Цифровой формат [01,12]
%M Минута. Цифровой формат [00,59]
%p До полудня или после (AM или PM)
%S Секунда. Цифровой формат [00,61]
%U Номер недели в году. Цифровой формат [00,53] (с воскресенья)
%w День недели. Цифровой формат [0(воскресенье), 6]
%W Номер недели в году. Цифровой формат [00,53] (с понедельника)
%x Дата
%X Время
%y Год без века. Цифровой формат [00,99]
%Y Год с веком. Цифровой формат
%Z Временная зона
%% Знак процента
  • datetime.today() — объект datetime из текущей даты и времени; работает также, как и datetime.now() со значением tz=None .
  • datetime.now(tz=None) — объект datetime из текущей даты и времени, местное время.
  • datetime.utcnow() — объект datetime из текущей даты и времени, по Гринвичу.
  • datetime.fromtimestamp(timestamp) — дата из стандартного представления времени.
  • datetime.fromordinal(ordinal) — дата из числа, представляющего собой количество дней, прошедших с 01.01.1970.
  • datetime.combine(date, time) — объект datetime из комбинации объектов date и time .
  • datetime.strptime(date_string, format) — преобразует строку в datetime (так же, как и функция strptime из модуля time ).
  • datetime.strftime(format) — преобразует объект datetime в строку согласно формату.
  • datetime.date() — объект даты (с отсечением времени).
  • datetime.time() — объект времени (с отсечением даты).
  • datetime.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]]) — возвращает новый объект datetime с изменёнными атрибутами.
  • datetime.timetuple() — возвращает struct_time из datetime .
  • datetime.toordinal() — количество дней, прошедших с 01.01.1970.
  • datetime.timestamp() — возвращает время в секундах с начала эпохи Unix.
  • datetime.weekday() — день недели в виде числа, понедельник — 0, воскресенье — 6.
  • datetime.isoweekday() — день недели в виде числа, понедельник — 1, воскресенье — 7.
  • datetime.isocalendar() — кортеж (год в формате ISO, ISO номер недели, ISO день недели).
  • datetime.isoformat(sep=’T’) — красивая строка вида YYYY-MM-DDTHH:MM:SS.mmmmmm или, если microsecond == 0 , YYYY-MM-DDTHH:MM:SS
  • datetime.ctime() — возвращает строковое представление текущего местного времени.
Читайте также:  Java phone number regexp

Класс datetime.timedelta

Класс datetime.timedelta позволяет выполнять операции над датами — складывать, вычитать, сравнивать. Конструктор принимает именованные аргументы days , weeks , hours , minutes , seconds , milliseconds , microseconds :

>>> delta = datetime.timedelta(days = 5, hours = 1, minutes = 1) >>> delta datetime.timedelta(5, 3660)

Интервал времени 5 дней, 1 час и 1 минута. Получить результат можно с помощью атрибутов days , seconds и microseconds (5 дней и 3660 секунд):

>>> delta.days 5 >>> delta.seconds 3660

Получить результат в секундах позволяет метод total_seconds() :

>>> today = datetime.datetime.today() # текущая дата >>> today datetime.datetime(2018, 4, 21, 15, 19, 2, 515432) >>> future = datetime.datetime(2019, 4, 21, 15, 19, 2, 515432) # дата на один год больше >>> delta = future - today >>> delta datetime.timedelta(365) >>> delta.total_seconds() # 365 дней в секундах 31536000.0

Прибавить к текущей дате 10 дней, 10 часов и 10 минут:

>>> today = datetime.datetime.today() >>> delta = datetime.timedelta(days = 10, hours = 10, minutes = 10) >>> future = today + delta >>> today # 21 апреля 2018 года, 15:29 datetime.datetime(2018, 4, 21, 15, 29, 29, 265954) >>> future # 2 мая 2018 года, 01:39 datetime.datetime(2018, 5, 2, 1, 39, 29, 265954)

Модуль time

Модуль основан на «эпохе Unix», которая началась 1 января 1970 года:

>>> import time >>> print(time.gmtime(0)) time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

Функция time.time() возвращает время в секундах по Гринвичу, начиная с эпохи Unix, как число с плавающей запятой:

>>> time.time() 1524561056.103065

Функция time.ctime([сек]) преобразует время, выраженное в секундах с начала эпохи Unix, в строку вида «Tue Apr 24 10:36:06 2018»:

>>> print(time.ctime()) Tue Apr 24 10:36:06 2018

Функция time.gmtime([сек]) возвращает время по Гринвичу как объект struct_time

>>> time.gmtime() time.struct_time(tm_year=2018, tm_mon=4, tm_mday=24, tm_hour=9, tm_min=6, tm_sec=29, tm_wday=1, tm_yday=114, tm_isdst=0)

Функция time.localtime([сек]) возвращает местное время (с учетом часового пояса) как объект struct_time

>>> time.localtime() time.struct_time(tm_year=2018, tm_mon=4, tm_mday=24, tm_hour=12, tm_min=6, tm_sec=51, tm_wday=1, tm_yday=114, tm_isdst=0)

Свойство time.altzone показывает смещение часового пояса в секундах к западу от нулевого меридиана. Если часовой пояс находится восточнее, смещение отрицательно:

Читайте также:  Try in java code

Функция time.sleep() приостановливает выполнение скрипта на определенное количество секунд.

Свойства и методы класса time

  • time.altzone — смещение часового пояса в секундах от нулевого меридиана.
  • time.time() — возвращает текущее время в секундах по Гринвичу, прошедшее с начала эпохи Unix.
  • time.asctime([time_tuple]) — возвращает строкове представление переданной либо текущей даты.
  • time.ctime([сек]) — возвращает строковое представление текущего местного времени.
  • time.gmtime([сек]) — возвращает объект struct_time , текущего или переданного времени по Гринвичу.
  • time.localtime([сек]) — возвращает объект struct_time , текущего или переданного времени. Представляющий местное время с начала эпохи Unix.
  • time.mktime(time_tuple) — преобразует кортеж или объект struct_time во время в секундах.
  • time.sleep(сек) — приостановить выполнение программы на заданное количество секунд.
  • time.strftime(формат, [time_tuple]) — преобразует кортеж или struct_time в строку по формату.

Дополнительно

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • 1С:Предприятие (31)
  • API (29)
  • Bash (43)
  • CLI (99)
  • CMS (139)
  • CSS (50)
  • Frontend (75)
  • HTML (66)
  • JavaScript (150)
  • Laravel (72)
  • Linux (146)
  • MySQL (76)
  • PHP (125)
  • React.js (66)
  • SSH (27)
  • Ubuntu (68)
  • Web-разработка (509)
  • WordPress (73)
  • Yii2 (69)
  • БазаДанных (95)
  • Битрикс (66)
  • Блог (29)
  • Верстка (43)
  • ИнтернетМагаз… (84)
  • КаталогТоваров (87)
  • Класс (30)
  • Клиент (27)
  • Ключ (28)
  • Команда (68)
  • Компонент (60)
  • Конфигурация (62)
  • Корзина (32)
  • ЛокальнаяСеть (28)
  • Модуль (34)
  • Навигация (31)
  • Настройка (140)
  • ПанельУправле… (29)
  • Плагин (33)
  • Пользователь (26)
  • Практика (99)
  • Сервер (74)
  • Событие (27)
  • Теория (105)
  • Установка (66)
  • Файл (47)
  • Форма (58)
  • Фреймворк (192)
  • Функция (36)
  • ШаблонСайта (68)
Читайте также:  Java mysql unknown column in field list

Источник

Оцените статью