Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

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 указывает, как это делается.

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

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

<тд>

время.часовой пояс

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

<тд>

время.tzname

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

Серийный номер Атрибут с описанием
1
2

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

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

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

Вот список функций, доступных в календаре. модуль —

<тд>

calendar.calendar(год,w=2,l=1,c=6)

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

<тд>

calendar.firstweekday()

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

<тд>

calendar.isleap(год)

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

<тд>

calendar.високосные дни(y1,y2)

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

<тд>

календарь.месяц(год,месяц,w=2,l=1)

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

<тд>

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

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

<тд>

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

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

<тд>

calendar.prcal(год,w=2,l=1,c=6)

Например, print calendar.calendar(год,н,л,в).

<тд>

calendar.prmonth(год,месяц,w=2,l=1)

Например, напечатать calendar.month(год,месяц,н,л).

<тд>

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

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

<тд>

calendar.timegm(время кортежа)

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

<тд>

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

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

Серийный номер Функция с описанием
1
2
3
4
5
6
7
8
9
10
11
12

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

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


Python

  1. Типы данных Python
  2. Операторы Python
  3. Оператор передачи Python
  4. Аргументы функции Python
  5. Словарь Питона
  6. Дата и время Python
  7. Как получить текущую дату и время в Python?
  8. Python Получить текущее время
  9. Модуль времени Python
  10. Сон питона ()