Я выполняю запросы к базам данных Big Query и Postgres и возвращаю результаты в виде списков, которые я позже преобразовываю в кадры данных pandas.Результаты выглядят примерно так:
| date | column2 | column3 |
|---------------------|---------|---------|
| 2019-05-01 17:05:00 | ....... | ....... |
| 2019-05-01 17:10:00 | ....... | ....... |
| 2019-05-01 17:10:00 | ....... | ....... |
| 2019-05-01 17:15:00 | ....... | ....... |
| ................... | ....... | ....... |
Проблема заключается в том, что дата имела тип даты - отметка времени в базе данных, и этот тип теряется во время загрузки.Итак, теперь это строка.
Другая проблема заключается в том, что, поскольку выполняемые мною запросы SQL учитывают часовые пояса, строки даты и времени, сохраненные в кадре данных, знают, хотя отображать нечего (например, смещение utc).
Теперь, поскольку я знаю, каким должен быть их часовой пояс, я пытаюсь преобразовать эти осведомленные строки даты и времени в осведомленные объекты даты и времени.
Но я столкнулся с несколькими проблемами, такими как:
- не может преобразовать объект метки времени pandas в объект даты и времени python для всего столбца «date»,
- при принудительном использовании часового пояса BST "2019-05-01 17:00:00"и использую
to_pydatetime()
я получаю что-то вроде" 2019-05-01 17:00:00 +01: 00 ", и я не знаю, что это значит, и - Я хочу получить строку или дату и времяот "2019-05-01 17:00:00 +01: 00" со смещением, включенным во время.
Подводя итог , скажем, я загружаю результатыгде каждая строка с указанием даты и времени должна иметь часовой пояс BST, а первая дата - 2019-05-01 17:05:00
.
Как я могу сообщить python, что указанное выше время указано в BST, что означает:
- , когда я сравниваю его с
2019-05-01 17:05:00 UTC
, оно должно быть ниже, чем с 2019-05-01 17:05:00 BST
на самом деле 2019-05-01 16:05:00 UTC
Как я могу преобразовать его из строкового типа в объект даты и времени python в формате "% Y-% m-% d% H:% M:% S ", где смещение включено, что означает:
- , когда я печатаю часть"% H ", это должно быть 17. В то же время, если я печатаю смещение, оно должно быть +00: 00потому что оно уже «применено».
Пожалуйста, дайте мне знать, если что-то не имеет смысла или я неправильно понял что-то важное о часовых поясах в python и общем в машинах.
Любой ответ, который помогает мне понять больше, приветствуется.