Конвертация Epoch времени в формат MySQL: как решить ошибку
Быстрый ответ
Для преобразования времени, выраженного в секундах с начала эпохи (данной в Unix-формате), в объект datetime в Python можно использовать функцию datetime.fromtimestamp()
:
from datetime import datetime
print(datetime.fromtimestamp(1633072800)) # Выводит соответствующий объект datetime
Учет часовых поясов
При работе со временем, выраженным в Unix-формате, необходимо учитывать часовые пояса. Чтобы преобразовать такое время в UTC, используйте функцию utcfromtimestamp()
:
from datetime import datetime
print(datetime.utcfromtimestamp(1633072800)) # Выводит время в формате UTC
Для исключения ошибки TypeError
, убедитесь, что в качестве аргумента передается целое число или число с плавающей точкой:
epoch_time = float('1633072800')
print(datetime.fromtimestamp(epoch_time)) # Исключено возникновение ошибки TypeError
Визуализация
Рассмотрите Unix-время как загадочный код:
import datetime
epoch_time = 1631021642 # Время, представленное в Unix-формате
Преобразуйте его в понятный формат:
human_time = datetime.datetime.fromtimestamp(epoch_time).strftime('%Y-%m-%d %H:%M:%S')
И вуаля, тайна раскрыта:
⏳ Unix-время (1631021642) ➡️ 📅 Datetime (2021-09-07 14:27:22)
Форматирование даты и времени
Если вы хотите представить дату и время в собственном формате, используйте метод strftime
:
formatted_time = datetime.fromtimestamp(epoch_time).strftime('%d/%m/%Y %I:%M:%S %p')
print(formatted_time) # Печатает текущее форматированное datetime
Очистка входных данных
Важно помнить, что функция fromtimestamp()
требовательна к типам входных данных. Убедитесь, что вы передаете целое число или число с плавающей точкой:
epoch_time = float('1633072800')
human_time = datetime.fromtimestamp(epoch_time) # Никаких ошибок TypeError
Работа с MySQL
Для преобразования Unix-времени в формат, приемлемый в MySQL, используйте функцию FROM_UNIXTIME
:
SELECT FROM_UNIXTIME(1633072800); # Выводит время в SQL
Если вам нужно только время (часы) из Unix-времени, воспользуйтесь следующим кодом на Python:
import time
hour = time.gmtime(epoch_time).tm_hour
print(hour) # Выводит значение часов
Получение текущего времени в Unix-формате
Текущее время, выраженное в Unix-формате, можно получить с помощью метода time()
библиотеки time
:
import time
current_epoch_time = time.time()
print(current_epoch_time) # Печатает текущее время в Unix-формате