Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
07 Июл 2023
2 мин
1562

Преобразование строки с Unix-временем в читаемую дату

Один из распространенных вопросов, с которым сталкиваются начинающие программисты на Python, связан с преобразованием строки, представляющей Unix-время,

Один из распространенных вопросов, с которым сталкиваются начинающие программисты на Python, связан с преобразованием строки, представляющей Unix-время, в читаемую дату. Примером может быть строка «1284101485», которую нужно преобразовать в дату.

import time
print(time.strftime("%B %d %Y", "1284101485"))

При выполнении этого кода возникает TypeError: argument must be 9-item sequence, not str, что говорит о том, что функция time.strftime ожидает получить последовательность из 9 элементов, а не строку.

Unix-время, также известное как POSIX-время, — это система времени, которая считает количество секунд, прошедших с полуночи 1 января 1970 года по координированному всемирному времени (UTC), без учета високосных секунд.

Важно понимать, что функция time.strftime ожидает получить структуру time.struct_time в качестве второго аргумента, а не строку или число. Эта структура содержит 9 элементов, включая год, месяц, день, часы, минуты, секунды, день недели, день года и признак летнего времени.

Чтобы решить данную проблему, нужно сначала преобразовать строку с Unix-временем в число с плавающей точкой с помощью функции float, затем использовать это число с функцией time.gmtime или time.localtime, чтобы преобразовать Unix-время в структуру time.struct_time, и только после этого передать полученную структуру функции time.strftime.

import time

unix_timestamp = "1284101485"
unix_timestamp = float(unix_timestamp)
time_struct = time.gmtime(unix_timestamp)

print(time.strftime("%B %d %Y", time_struct))

При выполнении этого кода будет выведена дата, соответствующая Unix-времени из строки: «September 10 2010».

Таким образом, преобразование строки с Unix-временем в читаемую дату в Python может быть выполнено в три шага: преобразование строки в число, преобразование числа в структуру времени и форматирование структуры времени в строку с датой.

Опрос для читателей: Какой язык программирования лучше? Узнайте результат после голосования

Добавить комментарий