Python / Django: есть ли у пользователя DB TimeZoneField, как мне использовать ее с датой и временем, чтобы получить strftime (), например «% Y-% m-% dT% H:% M:% S.000Z»? - PullRequest
1 голос
/ 30 октября 2010

У меня есть тип БД "TimeZoneField" для пользователей, как мне использовать его с объектом "datetime.datetime ()", чтобы получить строку strftime (), такую ​​как '% Y-% m-% dT% H:%M:% S.000Z '

?

1 Ответ

1 голос
/ 31 октября 2010

Это было для канала API данных Python Календаря Google, и было много работы, потому что библиотека даты и времени Python не поддерживает ISO 8601: http://wiki.python.org/moin/WorkingWithTime

Кроме того, если вы передаете даты с часовым поясом .000Z вВ календаре Google будет игнорироваться DST (летнее время) для событий, происходящих в EDT и других (так что для частей года все будет отключено на час).

Вот мое исправление: Предположим, start_time и end_timeявляются объектами datetime.datetime с учетом часового пояса:

    timezone_string = start_datetime.strftime('%z')[0:3] + ":" + start_datetime.strftime('%z')[3:6]    
    start_time = start_datetime.strftime('%Y-%m-%dT%H:%M:%S' + timezone_string)
    end_time = end_datetime.strftime('%Y-%m-%dT%H:%M:%S' + timezone_string)

Обратите внимание, что stftime ("% z") не включает символ ":" для разделения часов / минут в смещении, которое требуется API календаря Google.

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