Как первести значение даты в милисекундах в формат datetime?

В приходящих данных дата с милисекундами приходит в таком формате:

1616576493335

при переводе выдает это:

1970-01-01 00:26:56.483196596

Пытался использовать другие флаги, но их вообще не принимает. Вариант выше оказался более адекватный в плане формата, но вот год и дату он не отпределил.

Код:

import sqlite3
import pandas as pd
from datetime import datetime
import pytz

timezone = pytz.timezone("Etc/UTC")
utc_from = datetime(2021, 3, 23, tzinfo=timezone)
#Создает новый файл , если он есть то просто подключается
base = sqlite3.connect('new_base.db')
#Класс для создания, чтения, изменения таблиц
cur = base.cursor()
# получение данных
read_db = cur.execute('SELECT * FROM data_eurusd').fetchall()
df = pd.DataFrame(read_db)
#d = pd.read_sql("select * from data", db_conn)
#удаляяем ненужные столбцы
del df[1]
del df[4]
del df[6]
df[0] = pd.to_datetime(df[0], unit='ns')
print(df.head(300000))

Подскажите, как исправить на нужный формат?

Сами данные были записаны 23.03.2021.


Ответы (1 шт):

Автор решения: MaxU

У вас timestamp в миллисекундах, его и нужно использовать в качестве параметра unit:

In [34]: pd.to_datetime([1616576493335], unit="ms")
Out[34]: DatetimeIndex(['2021-03-24 09:01:33.335000'], dtype='datetime64[ns]', freq=None)
→ Ссылка