Конвертация формата времени ts в datetime, python
Хочу конвертить формат ts в datetime. Взял код из интернета, на их примерах работает. Ставлю свой ts, не работает.
Пример кода
from datetime import datetime
timestamp = 1625309472.357246
# convert to datetime
date_time = datetime.fromtimestamp(timestamp)
# convert timestamp to string in dd-mm-yyyy HH:MM:SS
str_date_time = date_time.strftime("%d-%m-%Y, %H:%M:%S")
print("Result 1:", str_date_time)
# convert timestamp to string in dd month_name, yyyy format
str_date = date_time.strftime("%d %B, %Y")
print("Result 2:", str_date)
# convert timestamp in HH:AM/PM MM:SS
str_time = date_time.strftime("%I%p %M:%S")
print("Result 3:", str_time)
Подставляю вместо timestamp свой вариант (1740631800000 - пример) уже не работает, пишет следующие
Traceback (most recent call last):
File "C:\Users\Кирилл и Любимка\PycharmProjects\OKX_bot\first_game.py", line 5, in <module>
date_time = datetime.fromtimestamp(timestamp)
OSError: [Errno 22] Invalid argument
Проверял свой вариант 1740631800000 в онлайн конвертере, там все четко получилось а в коде не получается. Помогите плз.
Ответы (1 шт):
Обратите внимание на комментарий документации fromtimestamp
Construct a datetime from a POSIX timestamp
В качестве аргумента он принимает POSIX метку. Обращаясь к Википедии:
Определяется как количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года
Вы же вводите количество миллисекунд.
Ответ: поделите ваше число на 1000.
import datetime
timestamp = 1740631800000
dt = datetime.datetime.fromtimestamp(timestamp / 1000)
print(dt)