Python - Дата и время

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

Что такое клещ?

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

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

пример

#!/usr/bin/python
import time;  # This is required to include time module.

ticks = time.time()
print "Number of ticks since 12:00am, January 1, 1970:", ticks

Это приведет к следующему результату -

Number of ticks since 12:00am, January 1, 1970: 7186862.73399

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

Что такое TimeTuple?

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

Индекс Поле Значения
0 4-значный год 2008 г.
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

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

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

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

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

#!/usr/bin/python
import time;

localtime = time.localtime(time.time())
print "Local current time :", localtime

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

Local current time : time.struct_time(tm_year=2013, tm_mon=7, 
tm_mday=17, tm_hour=21, tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, tm_isdst=0)

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

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

#!/usr/bin/python
import time;

localtime = time.asctime( time.localtime(time.time()) )
print "Local current time :", localtime

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

Local current time : Tue Jan 13 10:17:09 2009

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

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

#!/usr/bin/python
import calendar

cal = calendar.month(2008, 1)
print "Here is the calendar:"
print cal

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

Here is the calendar:
   January 2008
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 31

Времени Модуль

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

Sr.No. Функция с описанием
1 time.altzone

Смещение местного часового пояса летнего времени в секундах к западу от UTC, если он определен. Это отрицательно, если местный часовой пояс DST находится к востоку от UTC (как в Западной Европе, включая Великобританию). Используйте это, только если дневной свет отличен от нуля.

2 time.asctime ([время кортежа])

Принимает кортеж времени и возвращает читаемую 24-символьную строку, например «Tue Dec 11 18:07:14 2008».

3 time.clock ()

Возвращает текущее время процессора в секундах с плавающей запятой. Для измерения вычислительных затрат различных подходов значение time.clock более полезно, чем значение time.time ().

4 time.ctime ([секунды])

Как asctime (localtime (secs)) и без аргументов как asctime ()

5 time.gmtime ([секунды])

Принимает момент, выраженный в секундах с начала эпохи, и возвращает кортеж времени t со временем в формате UTC. Примечание: t.tm_isdst всегда 0

6 time.localtime ([секунды])

Принимает момент, выраженный в секундах с начала эпохи, и возвращает временную последовательность t с местным временем (t.tm_isdst равно 0 или 1, в зависимости от того, применяется ли летнее время к мгновенным секундам по местным правилам).

7 time.mktime (время кортежа)

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

8 time.sleep (сек)

Приостанавливает вызывающий поток на несколько секунд.

9 time.strftime (fmt [, время кортежа])

Принимает момент времени, выраженный в виде кортежа по местному времени, и возвращает строку, представляющую момент, указанный в строке fmt.

10 time.strptime (str, fmt = '% a% b% d% H:% M:% S% Y')

Анализирует str в соответствии со строкой формата fmt и возвращает момент времени в формате кортежа времени.

11 time.time ()

Возвращает текущий момент времени, число секунд с плавающей запятой, прошедшее с начала эпохи.

12 time.tzset ()

Сбрасывает правила преобразования времени, используемые библиотечными подпрограммами. Переменная среды TZ указывает, как это делается.

Давайте кратко рассмотрим функции -

В модуле времени доступны следующие два важных атрибута:

Sr.No. Атрибут с описанием
1

time.timezone

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

2

time.tzname

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

Календарь Модуль

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

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

Вот список функций, доступных с модулем календаря -

Sr.No. Функция с описанием
1

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

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

2

calendar.firstweekday( )

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

3

calendar.isleap(year)

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

4

calendar.leapdays(y1,y2)

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

5

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

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

6

calendar.monthcalendar(year,month)

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

7

calendar.monthrange(year,month)

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

8

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

Как print calendar.calendar (год, ш, л, в).

9

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

Как print calendar.month (год, месяц, w, l).

10

calendar.setfirstweekday(weekday)

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

11

calendar.timegm(tupletime)

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

12

calendar.weekday(year,month,day)

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

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

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

  • Даты и времени модуля

  • Pytz Модуль

  • Dateutil Модуль