2012-05-19 7 views
8

में एक बेवकूफ डेटाटाइम को कैसे स्टोर करें, मेरे पास '2012-05-19 19:13:00' प्रारूप में एक निष्क्रिय तिथि और समय है और इसे Django 1.4 और इसकी टाइमज़ोन-जागरूक क्षमताओं का उपयोग करके इसे स्टोर करने की आवश्यकता है।Django 1.4

हालांकि यह जानने का कोई तरीका नहीं है कि तिथि किस समय मूल रूप से है, ऐसा लगता है कि यह स्टोर करने के लिए समझ में आता है जैसे कि यह यूटीसी था।

हालांकि, pytz आदि का उपयोग करके, मुझे यकीन नहीं है कि एक तिथि को कैसे परिवर्तित करें जिसमें यूटीसी डेटाटाइम में कोई टाइमज़ोन नहीं है।

उत्तर

6

यदि इसमें कोई tzinfo नहीं है तो निश्चित रूप से यूटीसी में कोई रूपांतरण नहीं हो सकता है।

import datetime 
from pytz import UTC 

dt = datetime.datetime.now() # just some date 
tz_aware_dt = dt.replace(tzinfo=UTC) 

संपादित करें::

>>> from django.utils.dateparse import parse_datetime 
>>> naive = parse_datetime("2012-02-21 10:28:45") 
>>> import pytz 
>>> pytz.timezone("Europe/Helsinki").localize(naive) 
datetime.datetime(2012, 2, 21, 10, 28, 45, tzinfo=<DstTzInfo 'Europe/Helsinki' EET+2:00:00 STD>) 

आप शायद कि उपयोग करना चाहिए:

migration guide for django 1.4 इस का उपयोग करता है इसके बाद के संस्करण को पूरा करने के बजाय आप सिर्फ एक समय-क्षेत्र के बारे में पता एक में datetime वस्तु बना सकता है संस्करण, "यूटीसी" के लिए "यूरोप/हेलसिंकी" को प्रतिस्थापित कर रहा है।

+0

शानदार, धन्यवाद। 'Pytz.UTC.localize (naive) करना 'चाल करना प्रतीत होता है। –