Рубрики
Без рубрики

Посмотрев на модули даты Python Date и DateTime в предыдущих статьях, сегодня мы посмотрим посмотрите на модуль времени и понять, как извлечь, вводить и работать со временем в нашем кодировании. Во-первых, я буду рекомендовать на компьютерное время и ввести объект времени, мы будем использовать с функциями, которые мы представляем позже … Нежное введение в модуль времени Python.

Посмотрев на модули даты Python Date и DateTime в предыдущих статьях, сегодня мы посмотрим посмотрите на модуль времени и понять, как извлечь, вводить и работать со временем в нашем кодировании. Во-первых, я буду рекомендовать на компьютерное время и ввести объект времени, мы будем использовать с функциями, которые мы представляем позже … Нежное введение в модуль времени Python.

Автор оригинала: David Yeoman.

Посмотрев на Python Дата и datetime Модули в предыдущих статьях, сегодня мы посмотрим на время Модуль и понять, как извлечь, вводить и работать со временем в нашем кодировке. Во-первых, я буду повторить компьютерное время и представить объект времени, который мы будем использовать с функциями, которые мы представим позже в статье. Тогда мы рассмотрим наиболее важные функции в время Модуль и сделать некоторую работу специально с time.struct_time () Класс, создание и извлечение информации.

Как компьютеры измеряют время

Большинство компьютерных систем используют систему Himejeeperting Time Время Unix или Epoch Time И подсчитайте секунды из эпохи Unix, которая произвольно устанавливается в 00:00:00 UTC 1 января 1970 года. UTC означает скоординированное универсальное время, которое настало время на 0 градусов долготы.

В Python мы можем узнать текущее количество секунд, так как Epoch Time Импортируя модуль времени и используя класс Время () , как показано здесь.

import time

z = time.time()
print(z)

# Result
# 1621591198.1681073

Эта эпоха номер времени образует основу любых дополнительных расчетов времени, которые мы можем сделать в модуле времени. При этом ясно, давайте посмотрим на объект Python Time, созданный некоторыми классами, которые мы вскоре представим.

Если вам нужна быстрая освежания на классах Python, посмотрите курс академии Finxter на Объектно-ориентированное программирование Это даст вам глубокое погружение в концепции, теории и техническое понимание объектов и классов.

Представляем класс Struct_Time

time.struct_time Класс – это объект Python, состоящий из последовательности времени, которая возвращается рядом функций, которые мы вскоре представим. Объект принимает форму названный кортеж Отказ Если вы не встретились с именем кортежа раньше, это кортеж с различными именами, применяемыми к значениям. Это позволяет вызывать значения по имени атрибута, а не индекса. Вот быстрый пример определения именованного кортежа, а затем Печать предмет, используя его атрибут Имя Отказ

from collections import namedtuple

z = time.time()
print(z)
count = namedtuple('count', 'a, b, c, d')

z = count(a='ten', b='six', c='five', d='two')

print(z.c) # Calling content by name
print(z[2]) # Calling content by index

# Result:
# five
# five

Вы все еще можете получить элемент по индекс с именем кортежа, как показано последним Печать команда. Итак, time.struct_time Класс использует следующие имена атрибутов:

Положение индекса кортежей имя атрибута Возможные значения
0 TM_YEAR. (Например, 1993)
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]
6 tm_wday. Диапазон [0, 6], понедельник 0
7 tm_yday Диапазон [1, 366]
8 tm_isdst. 0, 1 или -1; см. ниже
N / A. TM_ZONE. сокращение имени часового пояса
N / A. TM_GMTOFF. Смещение к востоку от UTC за считанные секунды

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

Мастер самые полезные функции времени

Я проберусь через ряд основных функций в модуле времени и показать вам примеры каждого при использовании в коде. Вы уже были представлены Время. Время () При обсуждении выше около эпохи. Эта функция возвращает время UTC за считанные секунды с 1 января 1970 года. Вот несколько полезных функций.

time_ns ()

Есть также функция time_ns () который возвращает время эпохи, но в наносекундах для более высокого уровня точности. Вот какой-то код, сравнивающий Время. Время () Призыв к time.time_ns () вызов. Не забудьте Время импорта Для всех этих примеров кода.

import time

a = time.time()
b = time.time_ns()

print(a)
print(b)

# Result

1621594866.7063224  # Epoch time
1621594866706322500   # Nano second Epoch

Эта функция преобразует время, выраженное в считанные секунды с момента эпохи, к struct_time формат в UTC. Если в функцию не вводится никаких секунд, она вернет текущее время, возвращаемое Время () Отказ Я введу другую функцию, а затем мы запускаем какой-код для обоих.

Gmtime ()

Эта функция преобразует время, выраженное в считанные секунды с момента EPOCH, в формат struct_time в UTC. Если в функцию не вводится никаких секунд, она вернет текущее время, возвращаемое Время () Отказ Я введу другую функцию, а затем мы запускаем какой-код для обоих.

местное время()

Локальное время () похож на Gmtime () Но преобразует время эпохи на struct_time формат по местному времени. Если в функцию не вводится никаких секунд, она вернет текущее время, возвращаемое Время () Отказ Давайте запустим какой-то код для обеих функций, и вы увидите, что макет struct_time возвращается, как описано ранее.

c = time.gmtime()
d = time.localtime()

print('Epoch as struct_time Tuple - UTC: ', c)
print('Epoch as struct_time Tuple - Local: ', d)

# Result

Epoch as struct_time Tuple - UTC:  time.struct_time(tm_year=2021, tm_mon=5, tm_mday=21, tm_hour=12, tm_min=28, tm_sec=55, tm_wday=4, tm_yday=141, tm_isdst=0)

Epoch as struct_time Tuple - Local:  time.struct_time(tm_year=2021, tm_mon=5, tm_mday=21, tm_hour=13, tm_min=28, tm_sec=55, tm_wday=4, tm_yday=141, tm_isdst=1)

Вы можете явно увидеть именованный результат кортежа. Первый – это struct_time Объект в UTC, показывающий дату 21 мая 2021 и время 12:28:55, а второй – struct_time Объект по местному времени, который в этом случае является британским летним временем, что на один час впереди UTC и показывает 21 мая 2021 года в 13:28:55.

Стоит отметить tm_wday Атрибут, который относится к значению 4. Таблица выше показывает имена атрибутов и возможные значения. 0 относится к понедельнику; Следовательно, 4 относится к пятнице, правильно на 21 мая 2021 года.

mktime ()

Эта функция делает противоположность Локальное время () Отказ Требуется либо объект struction_time, либо кортеж со всеми поставляемыми 9 атрибутами. Локальное время () time_struct Объект передается для переменной D в вышеуказанном коде. Давайте использовать mktime () Для преобразования переменной D Вернуться к времени эпохи. Тогда мы пройдем 9 атрибута кортежа на mktime () Чтобы вернуть время эпохи на эту дату.

e = time.mktime(d)
y = (2022, 3, 15, 9, 17, 26, 1, 0, 0)
z = time.mktime(y)

print(e)
print(z)

# Result

1621601639.0 # Epoch time for e
1647335846.0 # Epoch time for z

Обратите внимание, что он вернет UTC, потому что я использовал 0 в последнем атрибуте в кортеже. Если бы я поставил -1, это означало, что я не знал часовой пояс или не заботился, в этом случае mktime () вернется местное время эпохи.

Ctime ()

Эта функция преобразует время эпохи в строку с определенным форматом, Mon 26 апреля 18:32:43 2021 ' Отказ Мы будем работать Ctime () На двух переменных е и z выше, чтобы вернуть их соответствующую отформатирован строки.

e = time.mktime(d)
y = (2022, 3, 15, 9, 17, 26, 1, 0, 0)
z = time.mktime(y)

print(e)
print(z)

print(time.ctime(e))
print(time.ctime(z))

# Result

1621602193.0 # Epoch time for e
1647335846.0 # Epoch time for z
Fri May 21 14:03:13 2021 # Returned string for e
Tue Mar 15 09:17:26 2022 # Returned string for z

Последние две функции, которые я хочу представить, преобразуют struct_time объект к строке, которая может быть отформатирована нами, или преобразование строки на struct_time объект.

strftime ()

strftime () Занимает объект struction_time или 9 атрибута 9 атрибута и преобразует его в строку, формат которого мы можем диктовать кодами. Полный список доступных кодов можно найти здесь , но я буду использовать следующее:

  • % – локальные сокращенные недельные дни, например, Mon для понедельника
  • % B день месяца как десятичное число от 1 до 31
  • % D Локалис сокращенного месяца Имя, например, Фев на февраль
  • % Год с веком как десятичное число, например, 2021
  • % H в 24-часовых часах как десятичное число от 1 до 23
  • % M как десятичное число от 00 до 59
  • % S в качестве десятичного числа с 00 до 61

Два аргумента, сделанные strftime () Должен быть строковая строка, за которой следуют либо struct_time объект или 9 атрибута кортеля.

import time

a = time.gmtime()
b = time.localtime()

print(time.strftime('%a, %d %b %Y %H:%M:%S GMT', a))
print(time.strftime('%a, %d %b %Y %H:%M:%S BST', b))

# Result

Fri, 21 May 2021 13:25:38 GMT
Fri, 21 May 2021 14:25:38 BST 

Strptime ()

Strptime () Возвращает struct_time Объект из строки даты, а затем формат строки. Мы конвертируем строку даты на struct_time Объект в следующем коде, затем мы извлем некоторые данные, вызывая отдельные атрибуты.

z = time.strptime('21 May 15 16 59 34', '%d %b %y %H %M %S')
print(z, '\n')
print(z.tm_year, '\n')
print(z.tm_mday, z.tm_mon, z.tm_year)

# Result

time.struct_time(tm_year=2015, tm_mon=5, tm_mday=21, tm_hour=16, tm_min=59, tm_sec=34, tm_wday=3, tm_yday=141, tm_isdst=-1) 

2015  

21 5 2015

Резюме

В этой статье мы посмотрели на модуль времени в Python. Мы обсудили время эпохи, используя Время () и time_ns () Чтобы вернуть количество секунд с 1 января 1970 года в UTC. Затем мы представили класс модуля времени struct_time , который принимает форму названного кортежа.

Мы обсудили, насколько называются кортежи созданы и используются и посмотрели на атрибуты, используемые time.struct_time класс.

Затем мы ввели шесть полезных функций модуля времени. Мы создали time_struct Объекты, использующие time.gmtime () и time.localtime () Отказ Использование mktime () Мы использовали 9-значный кортеж, чтобы вернуть время эпохи в считанные секунды и Ctime () взять время эпохи и вернуть специально отформатированное время.

Наконец, мы использовали strftime () взять struct_time Объект или атрибут 9 атрибутов и преобразуете его в строку, формат которого мы можем диктовать. Тогда мы использовали Strptime () взять строку и вернуть ее как struct_time Объект, вызывая определенные значения, вызывая атрибуты объекта.

Я доверяю эту статью было полезным, и я рекомендую вам посетить Python.org для изучения многих других функций, доступных для использования. Спасибо за прочтение.