Инструменты пользователя

Инструменты сайта


develop:pyton:date

Это старая версия документа!


Работа с датой и временем. Пользовательские функции

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

Модули:

  • time - текущие дата/время+ их форматированный вывод
  • datetime - манипуляции, арифметич операции и т.д.
  • calendar - календарь
  • timeit - позволяет измерить время выполнения фрагментов кода

Текущие дата/время

Модуль time

  • time()- вещественное число, кол-во секунд с начала эпохи (01.01.1970)
  • gmtime(<sec>= )- возвращает struct_time текущего времени либо указанному кол-ву сек с начала эпохи
  • localtime(<sec>= )- тоже самое, ток локальное время
  • mktime(<struct_time>)- -||-

Объект struct_time содержит:

  • tm_year (0)- год
  • tm_mon (1)- месяц
  • tm_mday (2)- день
  • tm_hour (3)- час
  • tm_min (4)- мин
  • tm_sec (5)- сек
  • tm_wday (6)- день недели
  • tm_yday (7)- кол-во дней с начала года
  • tm_isdst (8)- флаг летнего времени
d= time.gmtime()
d.tm_year, d[0]
 
# Все содержимое
tuple(d)
>> (2017, 11, 21, 14, 19, 34, 1, 325, 0)

Форматирование даты/время

  • strftime(<строка формата>, <struct_time>= ) - ДТ строкой, в указанном формате
  • strptime(<строка с датой>, <строка формата>= ) - разбирает строку в struct_time
  • asctime(<struct_time>= ) - строка в формате «%a %b %d %H:%M:%S»
  • ctime(<sec>= ) - аналогично предыдущему, но принимает кол-во секунд
:!: Аргументы форматирования:
  • %a Сокращенное название дня недели Вс, Пн
  • %A Полное название дня недели воскресенье, понедельник
  • %w День недели в виде десятичного числа 0…6
  • %d День месяца в виде десятичной дроби с нулями 01, 02
  • %-d день месяца в виде десятичного числа 1, 2..
  • %b Сокращенное название месяца Jan, Feb
  • %m месяц как десятичное число, дополненное нулями 01, 02
  • %-м месяц в виде десятичного числа 1, 2
  • %B Полное название месяца Январь, Февраль
  • %y год без века в виде десятичного числа, дополненного нулями 99, 00
  • %-й год без века в виде десятичного числа 0, 99
  • %Y год с веком в виде десятичного числа 2000, 1999
  • %H час (24-часовой формат) как десятичное число с нулями 01, 23
  • %-H час (24-часовой формат) в виде десятичного числа 1, 23
  • %I час (12-часовой формат) в виде десятичного числа с нулевым заполнением 01, 12
  • %-I час(12 часов) как десятичное число 1, 12
  • %p языковой стандарт AM или PM AM, PM
  • %M Минуты в виде десятичного числа, дополненного нулями 01, 59
  • %-M Минуты в виде десятичного числа 1, 59
  • %S Second как десятичное число, дополненное нулями 01, 59
  • %-S Секунда как десятичное число 1, 59
  • %f микросекунды в виде десятичного числа, дополненного нулями слева 000000, 999999
  • %z смещение UTC в формате +ЧЧММ или -ЧЧММ
  • %Z Название часового пояса
  • %j день года в виде десятичного числа, дополненного нулями 001, 365
  • %-j день года в виде десятичного числа 1 365
  • %U Номер недели в году (первым считается воскресенье) 0, 6
  • %W Номер недели года 00, 53
  • Соответствующее представление даты и времени локали %c Пн, 30 сентября, 07:06:05 2013 г.
  • %x языковое стандартное представление даты 30.11.98
  • Соответствующее представление времени локали %X 10:03:43
  • %% Буквенный символ «%» %

"Засыпание" скрипта

time.sleep(sec)

Модуль "datetime" манипуляции с ДТ

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

  • timedelta - дата в виде кол-ва дней, сек, микросек. Экземпляр можно складывать с date/datetime. Результат будет в этом формате
  • date, time, datetime - дата, время, комбинация даты/время в виде объекта
  • tzinfo - time zone

timedelta

Конструктор- timedelta(<days>=, <seconds>=, <microsec>=, <milisec>=, <minutes>=, <hours>=, <weeks>= )
Можно присваивать в порядке следования, либо именованными аргументами (timedelta(hours= 1))
Поддерживаются арифметические операции, сравнение и т.д.

d1= datetime.timedelta(days= 2)
d2= datetime.timedelta(days= 7)
d1 + d2, d1 / d2 ...

date

Операции над датами. date(<год>, <месяц>, <день>).

Для получения есть методы:

  • today() - текущая дата
  • fromtimestamp(<sec>) - дата, в соответствии кол-ва секунд с начала эпохи
  • fromordinal() -
d= datetime.date.today()
d.day, d.month, d.year

Есть методы: replace(), strftime(), isoformat(), ctime(), timetuple(), toordinal(), weekday(), isoweekday(), isocalendar().

time

Операции над временем. time(<hour>=, <minute>=, <second>=, <microsec>=, <tzinfo>=, <fold>= )
Арифметические действия не поддерживаются, только сравнение.

datetime

В целом аналогично предыдущим, включает многое из них, в конструкторе обязательно дата, время не обязательно

  • today(), now(<Timezone>= )- если зона не указана, то аналогичен первому методу.
  • utcnow() - текущее время UTC
  • [utc]fromtimestamp(<sec>)
  • combine(<date>, <time>) - на основе двух экземпляров
  • strptime(<строка даты>, <формат>) - строка в дату

Модуль calendar

Содержит классы для вывода календаря в простом, текстовом виде
Базовый класс Calendar, возвратит перечень всех чисел указанного месяца, сгруппированных по дням недели
TextCalendar (LocateCalendar ) в виде форматированного текста (локализованные названия)
HTMLCalendar, LocateHTMLCalendar в html формате

 

import calendar

c= calendar.Calendar(0) print(c.monthdayscalendar(2017, 11))

c= calendar.TextCalendar(0) print(c.formatyear(2017))

 

Другие функции

  • weekheader() -
  • isleap() -
  • weekday() -

Атрибуты:

  • day_[name,abbr] - список, содержащий перечень локализованных названий дней недели
  • month_[name,abbr] - список, содержащий перечень локализованных названий месяцев

Время выполнения фрагментов кода

Замер не конкретного куска кода а лишь образца кода, который передается строкой..
from timeit import Timer
Timer(<stmt>=, <setup>=, <timer>= ) - в первом указывается код, который нужно замерить, второй- код который нужно выполнить перед измерением

code1= """ for line in arr: ... """
t1= Timer(stmt= code1)
>> t1.timeit()

Пользовательские функции

Определение и вызов

 
 

Расположение определения

 
 

Необязательные параметры

 
 

Переменное число параметров

 
 

Анонимные функции

 
 

Функции-генераторы

 
 

Декораторы функции

 
 

Рекурсия

 
 

Глобальные и локальные переменные

 
 

Вложенные функции

 
 

Аннотации функций

 
 
 
develop/pyton/date.1645289601.txt.gz · Последнее изменение: 2022/02/19 16:53 — admin