Поиск по сайту:
Лон Чени написал детектив "человек с тысячью лиц". (Алан.Дж.Перлис)

Python 3 – Дата и время

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
29.09.2017
Python 3 - Дата и время

Программа Python может обрабатывать дату и время несколькими способами. Преобразование между форматами даты является общей рутиной для компьютеров. Модули времени и календаря в Python помогают отслеживать дату и время.

Что такое Tick?

Временные интервалы числа с плавающей точкой в ​​секундах. Особые моменты времени выражаются в секундах с 12:00, 1 января 1970 (эпохи).

Существует модуль time доступный в Python, который обеспечивает функции для работы со временем, и для преобразования между представлениями. Функция time.time() возвращает текущее системное время в тиках, с 12:00, 1 января 1970 (эпоха).

Пример

#!/usr/bin/python3
import time;  # Это необходимо для включения модуля времени.

ticks = time.time()
print ("Количество тиков с 12:00am, January 1, 1970:", ticks)

 

Это произведет следующий результат:

Количество тиков с 12:00am, January 1, 1970: 1455508609.34375

 

Расчет даты легко сделать с тиками. Однако дата до эпохи не могут быть представлены в таком виде. Даты в далеком будущем, также не могут быть представлены следующим образом – точка отсечки где-то в 2038 для UNIX и Windows.

Что такое TimeTuple?

Многие из функций времени в языке Python обрабатывают время как кортеж из 9 цифр, как показано ниже:

ИндексполеЗначения
04-значный год2016
1МесяцОт 1 до 12
2ДеньОт 1 до 31
3Час0 до 23
4МинутаОт 0 до 59
5СекундаОт 0 до 61 (60 или 61 являются високосными секундами)
6День неделиОт 0 до 6 (0 понедельник)
7День года1 до 366 (Юлианский день)
8Летнее время-1, 0, 1, -1 означает библиотека определяет DST

Для примера:

import time
print (time.localtime());

 

Это произведет следующий результат:

time.struct_time(tm_year = 2016, tm_mon = 2, tm_mday = 15, tm_hour = 9, 
   tm_min = 29, tm_sec = 2, tm_wday = 0, tm_yday = 46, tm_isdst = 0)

 

Кортеж выше эквивалентен структуре struct_time. Эта структура имеет следующие атрибуты:

ИндексАтрибутыЗначения
0tm_year2016
1tm_monОт 1 до 12
2tm_mdayОт 1 до 31
3tm_hour0 до 23
4tm_minОт 0 до 59
5tm_secОт 0 до 61 (60 или 61 являются високосными секундами)
6tm_wdayОт 0 до 6 (0 понедельник)
7tm_yday1 до 366 (Юлианский день)
8tm_isdst-1, 0, 1, -1 означает библиотека определяет DST

Получение текущего времени

Для того, чтобы перевести расчет времени от нескольких секунд, так как значение с плавающей точкой эпохи в timetuple, передается значение с плавающей запятой в функцию (например, localtime), которая возвращает timetuple со всеми действующими девятью пунктами.

#!/usr/bin/python3
import time

localtime = time.localtime(time.time())
print ("Текущее локальное время :", localtime)

 

Это произведет следующий результат, который может быть отформатирован в любую другую объектную форму:

Текущее локальное время : time.struct_time(tm_year = 2017, tm_mon = 9, tm_mday = 29, 
   tm_hour = 10, tm_min = 00, tm_sec = 1, tm_wday = 0, tm_yday = 46, tm_isdst = 0)

Получение отформатированного времени

Вы можете отформатировать в любое время в соответствии с вашим требованием, но простой метод, чтобы получить время в читабельном формате asctime():

#!/usr/bin/python3
import time

localtime = time.asctime( time.localtime(time.time()) )
print ("Текущее локальное время :", localtime)

 

Это покажет следующий результат:

Текущее локальное время : Fri Sen 29 10:00:01 2017

Получение календаря за месяц

Модуль calendar предоставляет широкий спектр методов, чтобы играть с годовыми и ежемесячными календарями. Здесь мы печатаем календарь для данного месяца (январь 2017):

#!/usr/bin/python3
import calendar

cal = calendar.month(2017, 9)
print ("Вот календарь:")
print (cal)

 

Это выведет следующий результат:

Вот календарь:
   September 2017
Mo Tu We Th Fr Sa Su
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

 

Модуль time

Существует модуль time, доступный в Python, который обеспечивает функции для работы со временем и для преобразования между представлениями. Вот список всех доступных методов.

S.No.Описание функции
1time.altzone – Смещение часового пояса DST, в секундах к западу от UTC, если он определен. Он является отрицательным, если локальный часовой пояс DST находится к востоку от UTC (как и в Западной Европе, включая Великобританию). Используйте его, если светлое время суток не равно нулю.
2time.asctime([tupletime]) – Принимает тайм-кортеж и возвращает читаемую строку 24 символов, такую как «Fri Sen 29 10:00:01 2017».
3time.clock() – Возвращает текущее время CPU с плавающей точкой количества секунд. Для измерения вычислительных затрат различных подходов, значение time.clock является более полезным, чем time.time().
4time.ctime([secs]) – Как asctime (localtime(сек)) и без аргументов, как asctime()
5time.gmtime([secs]) – Принимает значение, выраженное в секундах с начала эпохи и возвращает кортеж с временем в формате UTC. Note − t.tm_isdst всегда 0
6time.localtime([secs]) – Принимает значение, выраженное в секундах с началом эпохи и возвращает кортеж с местным временем (t.tm_isdst равен 0 или 1, в зависимости от того, применяется ли DST к мгновенным секундам по локальным правилам).
7time.mktime(tupletime) – Принимает значение, выраженное как тайм-кортеж по местному времени и возвращает значение с плавающей точкой с моментом, выраженным в секундах с началом эпохи.
8time.sleep(secs) – Приостановка вызывающего потока за secs секунд.
9time.strftime(fmt[, tupletime]) – Принимает мгновение, выраженное как тайм-кортеж по местному времени и возвращает строку, представляющий момент, как указано в строках FMT.
10time.strptime(str, fmt = ‘%a %b %d %H: %M: %S %Y’) – Анализирует ул соответствии с форматом строки fmt и возвращает мгновенно, в формате времени кортежа.
11time.time() – Возвращает текущий момент времени, число с плавающей точкой секунд с начала эпохи.
12time.tzset() – Сбрасывает правила преобразования времени, используемые подпрограммами библиотеки. Переменной среды TZ определяет, как это делается.

 

Есть два важных атрибута, доступных с модулем времени. Это:

S.No.Атрибут & Описание
1time.timezone

Атрибут time.timezone это смещение в секундах местного часового пояса (без ДСТ) от UTC (> 0 в Северной и Южной Америке; <= 0 в большинстве стран Европы, Азии, Африки).

2time.tzname

Атрибут time.tzname представляет собой пару локально-зависимых строк, которые являются именами местного часового пояса без и с DST, соответственно.

Модуль calendar

Модуль calendar предоставляет функции календаря, связанные, в том числе с функциями для печати текста календаря за определенный месяц или год.

По умолчанию, календарь начинается в понедельник, как первый день недели и воскресенье как последний. Чтобы изменить это, вызовите функцию calendar.setfirstweekday().

Ниже приведен список функций, доступных с модулем calendar:

S.No.Описание функции
1calendar.calendar(year,w = 2,l = 1,c = 6)

Возвращает многострочную строку с календарем на год, отформатированный в три колонки, разделенных пробелами. w – ширина в символах каждой даты; каждая линия имеет длину 21 * W + 18 + 2 * с. I – количество строк для каждой недели.

2calendar.firstweekday()

Возвращает текущую установку для буднего дня, которая начинается каждой неделю. По умолчанию, когда импортирован первый календарь, это 0, то есть понедельник.

3calendar.isleap(год)

Возвращает True, если год является високосным; в противном случае значение False.

4calendar.leapdays(y1,y2)

Возвращает общее количество високосных дней в последующие годы в пределах диапазона (y1, y2).

5calendar.month(year,month,w = 2,l = 1)

Возвращает многострочную строку с календарем месяца года, одну строку в неделю плюс две строки заголовка. w – ширина символов каждой даты; каждая строка имеет длину 7*w+6. I – количество строк для каждой недели.

6calendar.monthcalendar(год, месяц)

Возвращает список целых чисел. Каждый сублист обозначает неделю. Дней за месяц и год устанавливаются в 0; дней в течение месяца будут установлены в дней в месяце, 1 и выше.

7calendar.monthrange (год, месяц)

Возвращает два числа. Первый-это код дня недели для первого дня месяца в году; второй-количество дней в месяце. Коды дней недели-от 0 (понедельник) до 6 (воскресенье); число месяцев-от 1 до 12.

8calendar.prcal(year,w = 2,l = 1,c = 6)

Как печать calendar.calendar(year,w,l,c).

9calendar.prmonth(year,month,w = 2,l = 1)

Как печать calendar.month(year,month,w,l).

10calendar.setfirstweekday(день недели)

Устанавливает первый день каждой недели в будний день недели. Будние коды 0 (понедельник) до 6 (воскресенье).

11calendar.timegm(tupletime)

Обратное time.gmtime: принимает мгновенную форму время-кортеж и возвращает тот же самый момент, как число с плавающей точкой в секундах с начала эпохи.

12calendar.weekday(год, месяц, день)

Возвращает код дня недели для указанной даты. Коды дней недели-от 0 (понедельник) до 6 (воскресенье); числа месяцев-от 1 (январь) до 12 (декабрь).

Другие модули и функции

Если вы заинтересованы, то здесь вы найдете список других важных модулей и функций, предназначенные для обработки даты и времени в Python:

  • Модуль datetime
  • Модуль pytz
  • Модуль dateutil

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Спасибо!

Теперь редакторы в курсе.