Модуль time надає функціонал для роботи з часом в Python.
Завдання з часом включають:
читання поточного часу;
форматування часу;
затримка на певну кількість секунд і т.д.
Метод time.time() в Python
В Python метод time() повертає часову мітку Unix (кількість секунд, що минули з моменту відліку, закодовані певним чином). Для Unix-систем цією точкою є 1 січня 1970 року 00:00:00 за Всесвітнім координованим часом (скор. “UTC” від англ. “Coordinated Universal Time”).
Примітка: Конвертувати часову мітку у читабельний формат і навпаки можна онлайн на сайті EpochConverter.
Розглянемо приклад у коді:
|
1 2 3 4 5 6 7 |
# Імпортуємо модуль time import time # Отримуємо поточну дату і час у вигляді часової мітки seconds = time.time() print("Seconds since epoch =", seconds) |
Результат:
Seconds since epoch = 1694433684.1817417
Ми використали метод time.time() для отримання часової мітки, яка відповідає поточному часу та даті, а потім вивели результат на екран.
Метод time.ctime() в Python
Метод time.ctime() приймає в якості аргументу часову мітку, і повертає рядок, що представляє дату та час у читабельному форматі.
|
1 2 3 4 5 6 7 8 9 |
import time # Часова мітка seconds = 1672215379.5045543 # Конвертуємо час та дату в читабельний формат local_time = time.ctime(seconds) print("Local time:", local_time) |
Результат:
Local time: Wed Dec 28 08:16:19 2022
Метод time.sleep() в Python
Метод time.sleep() призупиняє (уповільнює) виконання поточного потоку коду на задану кількість секунд.
|
1 2 3 4 5 |
import time print("Printed immediately.") time.sleep(2.4) print("Printed after 2.4 seconds.") |
Результат:
Printed immediately.
Printed after 2.4 seconds.
Ось як працює ця програма:
виводиться "Printed immediately";
метод time.sleep(2.4) призупиняє виконання на 2.4 секунди;
виводиться "Printed after 2.4 seconds.".
Метод time.localtime() в Python
Метод time.localtime() приймає часову мітку та повертає struct_time (кортеж, який містить 9 елементів) за локальним часом.
|
1 2 3 4 5 6 |
import time result = time.localtime(1672214933) print("result:", result) print("\nyear:", result.tm_year) print("tm_hour:", result.tm_hour) |
Результат:
result: time.struct_time(tm_year=2022, tm_mon=12, tm_mday=28, tm_hour=8, tm_min=8, tm_sec=53, tm_wday=2, tm_yday=362, tm_isdst=0)
year: 2022
tm_hour: 8
Якщо в метод time.localtime() не передано жоден аргумент або None, то використовується значення, що повертається методом time.time().
Метод time.gmtime() в Python
Метод time.gmtime() в якості аргументу приймає часову мітку, і повертає кортеж struct_time по формату UTC.
|
1 2 3 4 5 6 |
import time result = time.gmtime(1672214933) print("result:", result) print("\nyear:", result.tm_year) print("tm_hour:", result.tm_hour) |
Результат:
result: time.struct_time(tm_year=2022, tm_mon=12, tm_mday=28, tm_hour=8, tm_min=8, tm_sec=53, tm_wday=2, tm_yday=362, tm_isdst=0)
year: 2022
tm_hour: 8
Якщо в метод time.gmtime() не передано жоден аргумент або None, то використовується значення, що повертається методом time.time().
Метод time.mktime() в Python
Метод time.mktime() приймає в якості аргументу struct_time (кортеж, який містить 9 елементів), і повертає часову мітку.
Кортеж struct_time має наступну структуру:
|
1 |
(рік, місяць, день, година, хвилини, секунди, тиждень, день року, літній час) |
Розглянемо приклад:
|
1 2 3 4 5 6 7 8 |
import time time_tuple = (2022, 12, 28, 8, 44, 4, 4, 362, 0) # Конвертуємо time_tuple у часову мітку Unix seconds = time.mktime(time_tuple) print(seconds) |
Результат:
1672217044.0
Метод time.asctime() в Python
Метод time.asctime() приймає в якості аргументу кортеж struct_time, і повертає рядок, що його представляє.
Кортеж struct_time має наступну структуру:
|
1 |
(рік, місяць, день, година, хвилини, секунди, тиждень, день року, літній час) |
Розглянемо приклад в коді:
|
1 2 3 4 5 6 |
import time t = (2022, 12, 28, 8, 44, 4, 4, 362, 0) result = time.asctime(t) print("Result:", result) |
Результат:
Result: Fri Dec 28 08:44:04 2022
Тут ми можемо бачити, що time.asctime() конвертує time_tuple у рядок.
Метод time.strftime() в Python
Метод time.strftime() приймає в якості аргументу кортеж struct_time і повертає рядок, що його представляє, на основі використовуваного коду формату. Наприклад:
|
1 2 3 4 5 6 |
import time named_tuple = time.localtime() # отримуємо struct_time time_string = time.strftime("%m/%d/%Y, %H:%M:%S", named_tuple) print(time_string) |
Результат:
12/29/2022, 08:36:22
Тут %Y, %m, %d, %H і т.д. — це коди формату. Нижче наведено деякі коди формату та їх опис:
%Y — рік [0001,..., 2018, 2019,..., 9999];
%m — місяць [01, 02, ..., 11, 12];
%d — день [01, 02, ..., 30, 31];
%H — година [00, 01, ..., 22, 23];
%M — хвилина [00, 01, ..., 58, 59];
%S — секунда [00, 01, ..., 58, 61].
Докладніше про метод strftime() та коди формату.
Метод time.strptime() в Python
Метод time.strptime() приймає рядок, що представляє час, та повертає struct_time.
|
1 2 3 4 5 6 |
import time time_string = "14 July, 2023" result = time.strptime(time_string, "%d %B, %Y") print(result) |
Результат:
time.struct_time(tm_year=2023, tm_mon=7, tm_mday=14, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=-1)
Докладніше про метод strptime() та коди формату.
