2015-05-18 2 views
1

Я пытаюсь объединить данные из Google Analytics и приложения django.Google Analytics и django datetime

datetime django в базе данных находится в UTC. Данные Google Analytics имеют часовой пояс как IST.

Я получаю данные из Google Analytics за период, основанный на IST, и получаю данные из django за тот же период в IST. Есть много вариаций.

  • Можно ли это решить?

ответ

0

Ваш лучший вариант здесь - изменить часовой пояс по умолчанию из вашего приложения Django в IST.

Прежде всего, вы должны проверить Django settings: TIME_ZONE

Вы лучше поймете, как это исправить, если вы понимаете, как это работает.

Чтобы изменить часовой пояс по умолчанию IST вам нужно добавить в ваш settings.py:

TIME_ZONE = 'Asia/Kolkata' 

Если Asia/Kolkata не соответствует вашим требованиям, вы можете проверить все доступные часовые пояса в следующем URL:

List of Time Zones

Если вы предпочитаете управлять объектами даты-времени и конвертирование из UTC в IST или наоборот вы можете сделать это следующим образом:

Преобразование данных из UTC в IST

from datetime import datetime 
from pytz import timezone 

format = "%Y-%m-%d %H:%M:%S %Z%z" 

# Current time in UTC 
now_utc = datetime.now(timezone('UTC')) 
print now_utc.strftime(format) 
Output: 2015-05-18 10:02:47 UTC+0000 

# Convert to Asia/Kolkata time zone 
now_asia = now_utc.astimezone(timezone('Asia/Kolkata')) 
print now_asia.strftime(format) 
Output: 2015-05-18 15:32:47 IST+0530 

Преобразование данных из IST в UTC

from datetime import datetime 
from pytz import timezone 

format = "%Y-%m-%d %H:%M:%S %Z%z" 

# Current time in Asia/Kolkata 
now_asia = datetime.now(timezone('Asia/Kolkata')) 
print now_asia.strftime(format) 
Output: 2015-05-18 15:32:47 IST+0530 

# Convert to UTC time zone 
now_utc = now_utc.astimezone(timezone('UTC')) 
print now_utc.strftime(format) 
Output: 2015-05-18 10:02:47 UTC+0000 
0

IST (индийский Standard Time) на 5:30 впереди UTC (http://www.timeanddate.com/time/zones/ist). При получении данных из Django убедитесь, что вы используете локализованные объекты datetime:

import pytz 
from datetime import datetime  

tz_india = pytz.timezone('Asia/Kolkata') 
start = tz_india.localize(datetime(#Here create you datetime object from IST)) 
end = tz_india.localize(datetime(#Here create you datetime object from IST))