Я получаю ответ от остальных формат времени эпохи, как
start_time = 1234566
end_time = 1234578
Я хочу преобразовать секунды этой эпохи во время формата MySQL, чтобы я мог сохранить различия в моей базе данных MySQL.
Я попытался:
>>> import time
>>> time.gmtime(123456)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=2, tm_hour=10, tm_min=17, tm_sec=36, tm_wday=4, tm_yday=2, tm_isdst=0)
Вышеуказанный результат не то, что я ожидаю. Я хочу, чтобы это было как
2012-09-12 21:00:00
Подскажите пожалуйста как мне этого добиться?
Кроме того, почему я получаю TypeError: a float is required
за
>>> getbbb_class.end_time = 1347516459425
>>> mend = time.gmtime(getbbb_class.end_time).tm_hour
Traceback (most recent call last):
...
TypeError: a float is required
1347516459425
? Это недопустимая эпоха. Попробуйtime.gmtime(float(str(i)[:-6]+'.'+str(i)[-6:]))
гдеi
есть1347516459425
.Ответы:
Чтобы преобразовать значение времени (float или int) в форматированную строку, используйте:
источник
Вы также можете использовать
datetime
:источник
strftime()
поддерживает больше форматирующих заполнителей, особенно% f для порции времени в микросекундах. По неизвестным причинамtime.strftime()
не поддерживает это, хотя микросекунды могут быть представлены в значении с плавающей запятой, которое вводится вtime.localtime()
.Чтобы получить UTC:
источник
Это то, что вам нужно
Пожалуйста, введите
float
вместоint
а, и другиеTypeError
должны уйти.источник
Попробуй это:
Также в MySQL вы можете
FROM_UNIXTIME
любить:Для вашего второго вопроса, это, вероятно, потому что
getbbb_class.end_time
это строка. Вы можете преобразовать его в числовой как:float(getbbb_class.end_time)
источник
Это немного более многословно, но это происходит от команды date в unix.
источник
Сначала немного информации в эпоху от man gmtime
чтобы понять, какой должна быть эпоха.
просто убедитесь, что аргумент, которому вы передаете,
time.gmtime()
является целым числом.источник