2016-04-01 4 views
0

Я пытаюсь сохранить запись в mysql, передав текущее местное время. django либо добавляет время в мой текущий часовой пояс, либо вычитает время на 5:30. я попробовал следующееDjango timezone неправильная вставка с mysql

content = { 
     'status' : 1, 
     'responseCode': 42, 
     'time' : timezone.now(), 
     'another': timezone.localtime(timezone.now()), 
     'zone' : request.session.get('django_timezone'), 
     "message" : datetime.datetime.today() 
     } 

Ответ:

{ 
    "status": 1, 
    "responseCode": 42, 
    "zone": null, 
    "another": "2016-04-01T18:01:25.668+05:30", 
    "time": "2016-04-01T12:31:25.668Z", 
    "message": "2016-04-01T18:01:25.668" 
} 

Я хочу, чтобы сохранить текущее время, которое 2016-04-01T18: 01: 25,668 в БД, но он все равно будет сохранять 2016 года -04-01 12:31:25

Джанго Запрос:

refundObject = TblRefund(schedule_id = 1923,transaction= transObject,response = "test",date = datetime.datetime.today()) 

Я установил часовой пояс в файле settings.py как:

TIME_ZONE = 'Asia/Kolkata' 
USE_TZ = True 

ответ

0

Поскольку формат MySQL поля даты и времени является 'YYYY-MM-DD HH: MM: SS [.fraction]. Вы должны преобразовать свое время в этот формат и сохранить смещение в дополнительном поле. О других способах вы можете прочитать here.

+0

Если формат является проблемой, почему он правильно хранит UTC, то есть ** 2016-04-01 12: 31: 25 ** –

+0

b/c сервер преобразует его в собственное время, посмотрите [здесь] (http: /dev.mysql.com/doc/refman/5.7/en/time-zone-support.html) – johndark

+0

Я запускаю эту команду, и она возвращает мне систему в качестве часового пояса, что означает мой местный часовой пояс Asia/Kolkata ** SELECT @ @ global.time_zone, @@ session.time_zone **, что верно –