अगर मैं ठीक से समझ नहीं पा रहा हूं तो इसे अपडेट करने में खुशी होगी, लेकिन यहां कुछ उदाहरण दिए गए हैं जो मदद कर सकते हैं। ध्यान दें कि यह datetime
. का उपयोग करता है time
. के बजाय मॉड्यूल ।
>>> import datetime
यहां हम एक उदाहरण टाइमस्टैम्प सेट करते हैं ts
और एक प्रारूप f
:
>>> ts = '2013-01-12 15:27:43'
>>> f = '%Y-%m-%d %H:%M:%S'
जैसा आपने ऊपर किया था, वैसे ही हम strptime
. का उपयोग करते हैं फ़ंक्शन (datetime.datetime
. से) ) हमारे स्ट्रिंग को datetime
. में बदलने के लिए फ़ॉर्मेटिंग पैरामीटर के आधार पर ऑब्जेक्ट:
>>> datetime.datetime.strptime(ts, f)
datetime.datetime(2013, 1, 12, 15, 27, 43)
अब उल्टा - यहाँ हम datetime.datetime.now()
use का प्रयोग करते हैं वर्तमान समय को datetime
. के रूप में प्राप्त करने के लिए वस्तु:
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2013, 1, 12, 0, 46, 54, 490219)
datetime
. में मामला, strftime
विधि को वास्तव में datetime
. पर कहा जाता है एक तर्क के रूप में स्वरूपण पैरामीटर के साथ ही ऑब्जेक्ट करें:
>>> now.strftime(f)
'2013-01-12 00:46:54'
आपकी स्थिति में, आपको त्रुटि मिलने का कारण यह है कि time.time()
एक फ्लोट लौटाता है:
>>> time.time()
1357980846.290231
लेकिन time.strftime
एक time
की जरूरत है टुपल, जैसा कि आपने ऊपर किया था। समय के चक्कर में पड़े बिना, एक फ़ंक्शन जैसे time.localtime()
उपरोक्त time
लौटाएगा टपल और आपकी अपेक्षा के अनुरूप वापस आ जाएगा:
>>> now = time.localtime()
>>> now
time.struct_time(tm_year=2013, tm_mon=1, tm_mday=12, tm_hour=0, tm_min=55, tm_sec=55, tm_wday=5, tm_yday=12, tm_isdst=0)
>>> f = '%Y-%m-%d %H:%M:%S'
>>> time.strftime(f, now)
'2013-01-12 00:55:55'