पाइथन में कनवर्ट करना, मैं datetime.datetime
को float
के प्रकार में कैसे परिवर्तित करूं जो मुझे time.time
फ़ंक्शन से प्राप्त होगा?पायथन: `datetime.datetime` से` time.time '
उत्तर
यह समय टपल विधि का उपयोग करने और अभी भी माइक्रोसेकंड बनाए रखने मुश्किल नहीं है:
>>> t = datetime.datetime.now()
>>> t
datetime.datetime(2011, 11, 5, 11, 26, 15, 37496)
>>> time.mktime(t.timetuple()) + t.microsecond/1E6
1320517575.037496
क्या आप समझा सकते हैं कि यह समाधान '(dt - datetime.datetime.utcfromtimestamp (0)) से बेहतर क्यों है। कुल_सेकंड()'? माइक्रोसॉन्ड का मैनुअल जोड़ा मेरे लिए सुरुचिपूर्ण लगता है। –
@ रामरामचम: आपका सूत्र मानता है कि 'डीटी' यूटीसी समय है। 'mktime()' मानता है कि इनपुट स्थानीय समय है। आपको बेवकूफ डेटाटाइम ऑब्जेक्ट्स का उपयोग करने से बचना चाहिए जो स्थानीय समय का प्रतिनिधित्व करते हैं जबतक कि आप उन्हें तुरंत प्रदर्शित नहीं करना चाहते हैं। इसके बजाय यूटीसी समय या टाइमज़ोन-जागरूक डेटाटाइम ऑब्जेक्ट्स का उपयोग करें। – jfs
एक datetime.datetime
वस्तु dt
देखते हुए, आप इस्तेमाल कर सकते हैं
(dt - datetime.datetime.utcfromtimestamp(0)).total_seconds()
उदाहरण:
>>> dt = datetime.datetime.now(); t = time.time()
>>> t
1320516581.727343
>>> (dt - datetime.datetime.utcfromtimestamp(0)).total_seconds()
1320516581.727296
ध्यान दें कि timedelta.total_seconds()
विधि पायथन 2.7 में पेश किया गया था।
'((24 * 3600 * td.days + टीडी [अजगर में यूटीसी टाइमस्टैम्प के datetime.date परिवर्तित] .seconds) * 1000000 + td.microseconds)/1e6' पायथन पर <2.7 – jfs
datetime.timetuple()
और time.mktime()
का एक संयोजन:
>>> import datetime
>>> import time
>>> now = datetime.datetime.now()
>>> secondsSinceEpoch = time.mktime(now.timetuple())
यह उप- उस समय का दूसरा हिस्सा। –
+1 क्योंकि यह उत्तर वैसे भी सहायक है और डाउनवोट उचित नहीं है। –
मेरे द्वारा +1 भी। मैं दोनों गणनाओं पर स्वेन से सहमत हूं :-) –
time.mktime(dt_obj.timetuple())
चाल करना चाहिए।
यह उस समय के उप-दूसरे भाग को छोड़ देता है। –
+1 क्योंकि यह उत्तर वैसे भी सहायक है और डाउनवोट उचित नहीं है। –
मैं जानता हूँ कि यह एक पुराने सवाल है, लेकिन अजगर में 3.3+ वहाँ अब का उपयोग कर यह करने के लिए एक आसान तरीका है datetime.timestamp() विधि:
from datetime import datetime
timestamp = datetime.now().timestamp()
'timestamp = time.time()' – jfs
यह इस विशिष्ट मामले को संभालेगा (वर्तमान टाइमस्टैम्प ढूंढें), लेकिन 'datetime.timestamp()' 'का उपयोग करके अधिक शक्तिशाली है क्योंकि यह आपको मनमाने ढंग से डेटाटाइम पर टाइमस्टैम्प ढूंढने की अनुमति देता है। – lsowen
तब एक बेहतर उदाहरण प्रदान करें। क्योंकि '.now()। टाइमस्टैम्प()' 'time.time()' से सख्ती से भी बदतर है। पूर्व डीएसटी संक्रमण के दौरान गलत परिणाम उत्पन्न कर सकता है। एक बेहतर उदाहरण: '.now (utc) .timestamp()' (कम से कम, यह सही परिणाम उत्पन्न करता है)। – jfs
संबंधित: (http://stackoverflow.com/a/8778548/4279) – jfs