2011-08-11 4 views
8

पायथन का उपयोग करके डेटाटाइम का रिटर्निंग मिलीसेकंड प्रतिनिधित्व, मैं & दिनांक दिनांक GAAT में डेटाटाइम डेटाटाइम के रूप में संग्रहीत कर रहा हूं। क्या पूरी तरह से स्वरूपित स्ट्रिंग संस्करण के विपरीत मिलीसेकंड में दिनांक समय का मूल्य प्राप्त करने का कोई तरीका है?पाइथन

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

date_time_float = 1015182600 #some date as timestamp 
date_time_object = datetime.fromtimestamp(date_time_float);             

जब मैं दुकान से डेटा निकाल सकते हैं, यह इस प्रकार का है: http://docs.python.org/release/2.5.2/lib/datetime-datetime.html

मूल दिनांक मान इस तरह से संग्रहीत किया जाता है

type(exported_date_time) # type: datetime.datetime 

वहाँ strftime एक स्ट्रिंग में परिवर्तित करने के लिए प्रतिनिधित्व लेकिन जो मैं खोज रहा हूं वह 'exported_date_time' को मिलीसेकंड में परिवर्तित करना है।

+1

क्या आप अभी यूनिक्स टाइम स्टैंप नहीं ले सकते हैं और 1000 से गुणा कर सकते हैं? –

+0

@agf आपका उत्तर वही है जो मैं बात कर रहा था। –

उत्तर

14

अवधि के बाद सेकंड पाने के लिए:

date_time_secs = time.mktime(datetimeobj.timetuple()) 

या मिलीसेकंड

date_time_milis = time.mktime(datetimeobj.timetuple()) * 1000 + datetimeobj.microsecond/1000 

या इसी तरह में पूरी बात के लिए।

+0

time.mktime का तर्क 'struct_time या पूर्ण 9-टुपल है जो स्थानीय समय में समय व्यक्त करता है, यूटीसी नहीं'। आप datetime.datetime को इसमें कैसे परिवर्तित करते हैं? –

+0

@agf दस्तावेज़ में, नोटेशन '' datetime.timetuple() '' का अर्थ है कि ** timetuple() ** कक्षा ** डेटाटाइम ** के उदाहरण का एक तरीका है (मॉड्यूल ** डेटाटाइम **); इसके अलावा, ** mktime() ** एक यूनिक्स समय, एक फ्लोट देता है। इसके अलावा, दान के लिए, ** date_time_object ** ** datetime.datetime ** का एक उदाहरण है। फिर अभिव्यक्ति होना चाहिए: '' unixtime = time.mktime (date_time_object.timetuple()) '' – eyquem

+0

@agf मैंने एक भ्रमित टिप्पणी लिखी है, मैंने इसे हटा दिया है। और मैंने अपनी नई टिप्पणी से पहले आपका जवाब नहीं देखा। मैं अब समझता हूं: आप _instance.timetuple() '' के नाम पर सामान्य रूप से _instance.timetuple() '' के सामान्य प्रतिनिधित्व के रूप में विचार कर रहे थे, क्योंकि यह दस्तावेज़ों में प्रचलित है। लेकिन मुझे लगता है कि इस सामान्य प्रतिनिधित्व का उपयोग दस्तावेज़ों तक ही सीमित होना चाहिए, वास्तविक कोड में उपयोग नहीं किया जाना चाहिए, अन्यथा यह भ्रमित है। आपने सही किया और यह बेहतर है। लेकिन आईएमओ, शेष नाम ** date_time_object ** एक फ्लोट के लिए अभी भी एक दोष है – eyquem