पायथन डेटाइम बनाम समय मॉड्यूल के बीच अंतर


137

मैं datetimeऔर के बीच के अंतर का पता लगाने की कोशिश कर रहा हूंtime मॉड्यूल के , और प्रत्येक के लिए क्या उपयोग किया जाना चाहिए।

मुझे पता है कि datetimeतारीख और समय दोनों प्रदान करता है। का क्या उपयोग हैtimeमॉड्यूल ?

उदाहरण की सराहना की जाएगी और टाइमज़ोन के बारे में मतभेद विशेष रूप से रुचि के होंगे।

जवाबों:


102

timeमॉड्यूल यूनिक्स समय टिकटों के साथ काम करने के लिए मुख्य रूप से है, यूनिक्स युग के बाद से सेकंड के लिए एक फ्लोटिंग पॉइंट नंबर के रूप में व्यक्त किया गया। datetimeमॉड्यूल एक ही आपरेशन के कई समर्थन कर सकते हैं, लेकिन प्रकार का एक और अधिक वस्तु उन्मुख सेट प्रदान करता है, और यह भी समय क्षेत्रों के लिए कुछ सीमित समर्थन हासिल है।


22
इसके अलावा, के बीच मतभेद रहे हैं timeऔर datetime.time?
SparkAndShine

यदि यह रीयलटाइम / मोनोटोनिक है तो गुणों का विवरण देना अच्छा होगा। जैसे आपके पास POSIX मानक में: CLOCK_REALTIME, CLOCK_MONOTONIC, CLOCK_THREAD, आदि ... POSIX घड़ियों पर देखें: stackoverflow.com/questions/3523442/…
Vajk Hermecz

12

timeडीएसटी अस्पष्टता को रोकने के लिए छड़ी ।

दिन की बचत समय (डीएसटी) के साथ अस्पष्टता के मुद्दों को रोकने के लिए timeमॉड्यूल के बजाय विशेष रूप से सिस्टम मॉड्यूल का उपयोग करें ।datetime

स्थानीय समय सहित किसी भी समय प्रारूप में रूपांतरण बहुत आसान है:

import time
t = time.time()

time.strftime('%Y-%m-%d %H:%M %Z', time.localtime(t))
'2019-05-27 12:03 CEST'

time.strftime('%Y-%m-%d %H:%M %Z', time.gmtime(t))
'2019-05-27 10:03 GMT'

time.time()एक अस्थायी बिंदु संख्या है जो सिस्टम युग से सेकंड में समय का प्रतिनिधित्व करता है। time.time()स्पष्ट समय मुद्रांकन के लिए आदर्श है।

यदि सिस्टम अतिरिक्त रूप से नेटवर्क टाइम प्रोटोकॉल (NTP) चलाता है चलाता है, तो एक बहुत ठोस समय आधार के साथ समाप्त होता है।

यहाँ मॉड्यूल का प्रलेखन है time


आपके उदाहरण में, आप उपयोग करते हैं time.localtime(), निश्चित रूप से किस डीएसटी में बेक किया गया है। यदि हम शुद्धतावादी होने जा रहे हैं, तो क्या हमें time.gmtime()इसके बजाय उपयोग नहीं करना चाहिए ? :)
सीमस

@Seamus आप दोनों आदेशों में परीक्षण ipythonसे पता चलता है कि time.gmtime()एक टपल पैदावार, जबकि time.time()देता यूनिक्स काल समय समारोह के बाद से 00:00:00 यूटीसी बीत मिनट के एकल दशमलव मान के रूप, गुरुवार, 1 जनवरी 1970 time.localtime(t)धर्मान्तरित एक स्थानीय करने के लिए युग समय समय खराब तो, आपके प्रश्न का उत्तर «नहीं» है।
सर्ज स्ट्रोबैंडैट

क्या किसी समय वस्तु में दिन जोड़ने का कोई तरीका है? डेटाटाइम के साथ समयसीमा (दिन = 6) विधि है।
नेहमियास हरेरा

@NehemiasHerrera t = time.time()एक अस्थायी बिंदु है जो सिस्टम युग के बाद से सेकंड में समय का प्रतिनिधित्व करता है। इसलिए, हर दिन के लिए बस 86400 सेकंड जोड़ या बदल सकते हैं; t += 86400
सर्ज स्ट्रोबंड

5

समय मॉड्यूल का उपयोग तब किया जा सकता है जब आपको केवल एक विशेष रिकॉर्ड के समय की आवश्यकता होती है - जैसे कि आप प्रत्येक दिन के लिए लेनदेन के लिए एक अलग तालिका / फ़ाइल की सुविधा देते हैं, तो आपको बस समय की आवश्यकता होगी। हालांकि समय अंतर को आमतौर पर समय अंतर को संग्रहीत करने के लिए उपयोग किया जाता है को 2 बिंदुओं के बीच ।

यह डेटाइम का उपयोग करके भी किया जा सकता है, लेकिन अगर हम केवल किसी विशेष दिन के लिए समय के साथ काम कर रहे हैं, तो समय मॉड्यूल का उपयोग किया जा सकता है।

डेटाटाइम का उपयोग किसी विशेष डेटा और समय को रिकॉर्ड करने के लिए किया जाता है। जैसे किराये की एजेंसी में। नियत तारीख एक डेटाइम डेटाटाइप होगी।


3

यदि आप टाइमज़ोन में रुचि रखते हैं, तो आपको पाइत्ज़ के उपयोग पर विचार करना चाहिए।


8
यह समय और डेटाइम मॉड्यूल और उन दोनों के बीच टाइमज़ोन के मतभेदों में सबसे अधिक दिलचस्पी लेने में संकोच करता है। सभी उचित सम्मान के साथ, इस में एक और निर्भरता लाना बहुत अप्रासंगिक है।
sbartell

3
दोनों समय और डेटाइम मॉड्यूल में टाइमज़ोन का समर्थन वास्तव में बहुत खराब है ... यदि वह वास्तव में टाइमज़ोन को एक उपयोगी तरीके से संभालने में रुचि रखते हैं, तो उन्हें वास्तव में पाइट्ज़ के बारे में पता होना चाहिए। आप समस्या को हल करने के लिए निर्भरता में लाते हैं कि आपकी वर्तमान निर्भरताएँ आपकी समस्या को हल करने में मदद नहीं कर रही हैं ...
donkopotamus
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.