#python-3.x #pymongo #bson
#python-3.x #pymongo #bson
Вопрос:
Данные в MongoDB хранятся следующим образом, вероятно, это должен был быть ISODate, но это не так:
"timestamp": {
"$numberLong": "1599142085021078272"
},
В Python 3 я извлекаю данные и делаю это:
testDateTimeStamp = doc['timestamp']
print ("testDateTimeStamp:", testDateTimeStamp, " type=", type(testDateTimeStamp))
rowDateTime = datetime1.datetime.fromtimestamp(testDateTimeStamp)
Команда print, похоже, распутывает его и показывает это, но как мне преобразовать его обратно в datetime в моем коде?
testDateTimeStamp: 1599152715643496874 type= <class 'bson.int64.Int64'>
затем он выдает ошибку:
Ошибка ОС: [Ошибка 22] Недопустимый аргумент
Комментарии:
1. 1599142085021078272 это к дате или времени?
2. Это время, с большой точностью.
3. Вы можете вставить его сюда: epochconverter.com
4. вау, это здорово! полезно знать эту информацию
Ответ №1:
Это моя первая попытка заставить его работать. Если есть лучший способ, пожалуйста, дайте мне знать. Я помнил, что ранее мне приходилось делить, чтобы избавиться от наносекунд.
one_minute = datetime1.timedelta(minutes=1)
testDateTimeStamp = int(int(doc['timestamp']) / 1000000000)
print ("testDateTimeStamp:", testDateTimeStamp, " type=", type(testDateTimeStamp))
rowDateTime = datetime1.datetime.fromtimestamp(testDateTimeStamp)