Python — Дата и время
Предыдущая страницаСледующая страница
Программа Python может обрабатывать дату и время несколькими способами. Преобразование между форматами даты является обычной задачей для компьютеров. Модули времени и календаря Python помогают отслеживать дату и время.
Что такое тик?
Временные интервалы представляют собой числа с плавающей запятой в секундах. Конкретные моменты времени выражаются в секундах с 00:00:00 1 января 1970 г. (эпоха).
Есть популярное время модуль, доступный в 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
Арифметика дат легко выполняется с помощью галочек. Однако даты до эпохи не могут быть представлены в таком виде. Даты в далеком будущем также не могут быть представлены таким образом — точка отсчета где-то в 2038 году для UNIX и Windows.
Что такое 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
время Модуль
Есть популярное время модуль, доступный в Python, который предоставляет функции для работы со временем и для преобразования между представлениями. Вот список всех доступных методов —
Серийный номер | Функция с описанием |
---|---|
1 | time.altzone Смещение местного часового пояса летнего времени в секундах к западу от UTC, если оно определено. Это отрицательно, если местный часовой пояс DST находится восточнее UTC (как в Западной Европе, включая Великобританию). Используйте это, только если дневной свет не равен нулю. |
2 | time.asctime([tupletime]) Принимает кортеж времени и возвращает удобочитаемую строку из 24 символов, например "Вт, 11 декабря, 18:07:14 2008". |
3 | время.часы() Возвращает текущее время процессора в виде числа секунд с плавающей запятой. Для измерения вычислительных затрат различных подходов значение 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[,tupletime]) Принимает момент времени, выраженный в виде кортежа времени по местному времени, и возвращает строку, представляющую момент, указанный строкой fmt. |
10 | time.strptime(str,fmt='%a %b %d %H:%M:%S %Y') Анализирует строку str в соответствии со строкой формата fmt и возвращает момент времени в формате кортежа времени. |
11 | время.время() Возвращает текущий момент времени, число секунд с плавающей запятой с начала эпохи. |
12 | time.tzset() Сбрасывает правила преобразования времени, используемые подпрограммами библиотеки. Переменная среды TZ указывает, как это делается. |
Давайте кратко рассмотрим функции —
В модуле времени доступны два важных атрибута —
Серийный номер | Атрибут с описанием |
---|---|
1 | <тд>|
2 | <тд>
Календарь Модуль
Модуль календаря предоставляет функции, связанные с календарем, в том числе функции печати текстового календаря на заданный месяц или год.
По умолчанию календарь использует понедельник как первый день недели, а воскресенье как последний. Чтобы изменить это, вызовите функцию calendar.setfirstweekday().
Вот список функций, доступных в календаре. модуль —
Серийный номер | Функция с описанием |
---|---|
1 | <тд>|
2 | <тд>|
3 | <тд>|
4 | <тд>|
5 | <тд>|
6 | <тд>|
7 | <тд>|
8 | <тд>|
9 | <тд>|
10 | <тд>|
11 | <тд>|
12 | <тд>
Другие модули и функции
Если вам интересно, то здесь вы найдете список других важных модулей и функций для работы с датой и временем в Python —
-
дата/время Модуль
-
питц Модуль
-
dateutil Модуль
Python