Преобразование местного времени в зулусское время, чтобы сравнить время - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть БД с записями времени, отформатированными следующим образом:

2018-11-05T08:58:00Z

Я пытаюсь сгенерировать SQL-запросы для сравнения "now ()" со временем в БД, чтобы определить, какие строки возвращать.

Я пытаюсь «преобразовать» мое местное время (now ()) в эквивалентный формат времени, чтобы я мог использовать <или> операции со значениями БД.

Кроме того, я не уверен, что проблема состоит из двух частей. Пример вышеупомянутого времени не находится в поле «Datetime» в MySQL, но хранится просто как TEXT, поэтому я подозреваю, что мне сначала нужно «преобразовать» записи БД в другой формат?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Следующий код, использующий модуль datetime , работает для меня (проверено в Python 3.6):

import datetime

value = "2018-11-05T08:58:00Z"
dt = datetime.datetime.strptime(value, "%Y-%m-%dT%H:%M:%SZ")
# Result is: datetime.datetime(2018, 11, 5, 8, 58)

Это преобразует ваши строковые значения в datetime экземпляров, которые затем можно сравнить с now(). Значения, которые создаются, должны быть наивными (то есть они не имеют никакой информации о часовом поясе).

Однако, если вы уверены, что now() для вас не UTC (он же время зулу), вам может потребоваться выполнить преобразование. Это может быть возможно, если, например, вы используете Django timezone.now() и ваш настроенный часовой пояс отличается от UTC. В этом случае я мог бы преобразовать результат now() в UTC, поэтому вам нужно преобразовать только одно значение. Модуль pytz легко справляется с подобными вещами.

0 голосов
/ 07 ноября 2018

Проверьте это:

import time

time = time.strftime('%Y-%m-%dT%H:%M:%SZ')

print(time)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...