सवाल पाइथन में वर्तमान समय कैसे प्राप्त करें


वर्तमान समय प्राप्त करने के लिए उपयोग किया जाने वाला मॉड्यूल / विधि क्या है?


1955
2018-01-06 04:54


मूल




जवाब:


उपयोग:

>>> import datetime
>>> datetime.datetime.now()
datetime(2009, 1, 6, 15, 8, 24, 78915)

>>> print(datetime.datetime.now())
2018-07-29 09:17:13.812189

और बस समय:

>>> datetime.datetime.time(datetime.datetime.now())
datetime.time(15, 8, 24, 78915)

>>> print(datetime.datetime.time(datetime.datetime.now()))
09:17:51.914526

वही, लेकिन थोड़ा अधिक कॉम्पैक्ट:

>>> datetime.datetime.now().time()

देख दस्तावेज़ीकरण अधिक जानकारी के लिए।

टाइपिंग को सहेजने के लिए, आप आयात कर सकते हैं datetime से वस्तु datetime मॉड्यूल:

>>> from datetime import datetime

फिर अग्रणी हटा दें datetime. उपरोक्त सभी से।


2009
2018-01-06 04:57



datetime.datetime.now () और datetime.datetime.today () वही हैं? datetime.datetime.now (tz = none) टाइमज़ोन जानकारी में लेता है लेकिन datetime.datetime.today () नहीं करता है docs.python.org/3.6/library/datetime.html#datetime.datetime.now - Jun
@Jun आपकी टिप्पणी किसी तरह का उत्तर प्रतीत होती है लेकिन इस उत्तर के साथ कुछ लेना देना नहीं है today() तो क्या आप वाकई अपनी टिप्पणी के लिए सही पोस्ट हैं? - Mike - SMT
@ माइक-एसएमटी मैं सिर्फ एक टिप्पणी करना चाहता था ताकि अन्य लोगों को चारों ओर देखना न पड़े क्योंकि मुझे शुरुआत में अंतर नहीं पता था - Jun


आप उपयोग कर सकते हैं time.strftime():

>>> from time import gmtime, strftime
>>> strftime("%Y-%m-%d %H:%M:%S", gmtime())
'2009-01-05 22:14:39'

787
2018-01-06 04:59



क्या यह @ पैरामैटरज़ के उत्तर से बेहतर / बदतर है? हमें इसका उपयोग क्यों करना चाहिए timeमॉड्यूल बनाम datetime मॉड्यूल? - frank


के समान हार्ले का जवाब, लेकिन इसका उपयोग करें str() एक त्वरित-गंदे, थोड़ा अधिक मानव पठनीय प्रारूप के लिए कार्य:

>>> from datetime import datetime
>>> str(datetime.now())
'2011-05-03 17:45:35.177000'

408
2018-05-04 00:56



यह सब पूछ रहा है कि वर्तमान समय प्राप्त करना है, इसे प्रदर्शित न करें। - ppperry
डेटाटाइम मॉड्यूल का उपनाम क्यों मायने रखता है? यानी, क्यों नहीं import datetime काम? - Mike Palmice
@ माइकपाल्मिस यह काम करता है, लेकिन आपको लिखना होगा datetime.datetime.now()। - Gabriel


>>> from datetime import datetime
>>> datetime.now().strftime('%Y-%m-%d %H:%M:%S')

इस उदाहरण के लिए, आउटपुट इस तरह होगा: '2013-09-18 11:16:32'

यहां सूची है strftime


368
2018-01-09 05:50





मैं पाइथन में वर्तमान समय कैसे प्राप्त करूं?

time मॉड्यूल

time मॉड्यूल उन कार्यों को प्रदान करता है जो हमें "युग के बाद से सेकंड" के साथ-साथ अन्य उपयोगिताओं में भी समय बताते हैं।

import time

यूनिक्स युग टाइम

यह प्रारूप है जिसे आपको डेटाबेस में सहेजने के लिए टाइमस्टैम्प मिलना चाहिए। यह एक साधारण फ़्लोटिंग पॉइंट नंबर है जिसे एक पूर्णांक में परिवर्तित किया जा सकता है। यह सेकंड में अंकगणित के लिए भी अच्छा है, क्योंकि यह 1 जनवरी 1 9 70 00:00:00 के बाद से सेकंड की संख्या का प्रतिनिधित्व करता है, और यह समय के अन्य प्रस्तुतियों के सापेक्ष मेमोरी लाइट है जिसे हम अगले पर देखेंगे:

>>> time.time()
1424233311.771502

यह टाइमस्टैम्प लीप-सेकंड के लिए खाता नहीं है, इसलिए यह रैखिक नहीं है - लीप सेकंड अनदेखा कर रहे हैं। इसलिए जब यह अंतरराष्ट्रीय यूटीसी मानक के बराबर नहीं है, तो यह करीब है, और इसलिए रिकॉर्ड रखने के अधिकांश मामलों के लिए काफी अच्छा है।

यह मानव शेड्यूलिंग के लिए आदर्श नहीं है, हालांकि। यदि आपके पास भविष्य में एक निश्चित घटना है जो आप निश्चित समय पर करना चाहते हैं, तो आप उस समय को एक स्ट्रिंग के साथ स्टोर करना चाहेंगे जिसे डेटाटाइम ऑब्जेक्ट या सीरियलाइज्ड डेटाटाइम ऑब्जेक्ट में पार्स किया जा सकता है (इन्हें बाद में वर्णित किया जाएगा)।

time.ctime

आप अपने ऑपरेटिंग सिस्टम द्वारा पसंदीदा तरीके से वर्तमान समय का भी प्रतिनिधित्व कर सकते हैं (जिसका अर्थ यह है कि जब आप अपनी सिस्टम वरीयताओं को बदलते हैं तो यह बदल सकता है, इसलिए इस पर भरोसा न करें कि सभी प्रणालियों में मानक हो, जैसा कि मैंने दूसरों को उम्मीद की है) । यह आम तौर पर उपयोगकर्ता के अनुकूल है, लेकिन आम तौर पर स्ट्रिंग्स में परिणामस्वरूप कोई क्रमिक रूप से क्रमबद्ध नहीं हो सकता है:

>>> time.ctime()
'Tue Feb 17 23:21:56 2015'

आप मानव पठनीय रूप में टाइमस्टैम्प को हाइड्रेट कर सकते हैं ctime भी:

>>> time.ctime(1424233311.771502)
'Tue Feb 17 23:21:51 2015'

यह रूपांतरण रिकॉर्ड-रखरखाव के लिए भी अच्छा नहीं है (पाठ को छोड़कर जिसे केवल मनुष्यों द्वारा पार्स किया जाएगा - और बेहतर ऑप्टिकल कैरेक्टर रिकग्निशन और आर्टिफिशियल इंटेलिजेंस के साथ, मुझे लगता है कि इन मामलों की संख्या कम हो जाएगी)।

datetime मॉड्यूल

datetime मॉड्यूल भी काफी उपयोगी है:

>>> import datetime

datetime.datetime.now

datetime.now एक क्लास विधि है जो वर्तमान समय लौटाती है। यह उपयोग करता है time.localtime टाइमज़ोन जानकारी के बिना (यदि नहीं दिया गया है, अन्यथा नीचे दिए गए टाइमज़ोन को देखें)। इसमें एक प्रतिनिधित्व है (जो आपको समकक्ष वस्तु को फिर से बनाने की अनुमति देगा) खोल पर प्रतिबिंबित होता है, लेकिन जब मुद्रित होता है (या किसी के लिए मजबूर होता है str), यह मानव पठनीय (और लगभग आईएसओ) प्रारूप में है, और लेक्सिकोोग्राफिक क्रम कालक्रम के बराबर है:

>>> datetime.datetime.now()
datetime.datetime(2015, 2, 17, 23, 43, 49, 94252)
>>> print(datetime.datetime.now())
2015-02-17 23:43:51.782461

datetime के utcnow

आप यूटीसी समय, एक वैश्विक मानक में एक डाटाटाइम ऑब्जेक्ट प्राप्त कर सकते हैं, ऐसा करके:

>>> datetime.datetime.utcnow()
datetime.datetime(2015, 2, 18, 4, 53, 28, 394163)
>>> print(datetime.datetime.utcnow())
2015-02-18 04:53:31.783988

यूटीसी एक समय मानक है जो लगभग जीएमटी टाइमज़ोन के बराबर है। (जबकि जीएमटी और यूटीसी डेलाइट सेविंग्स टाइम के लिए नहीं बदलते हैं, लेकिन उनके उपयोगकर्ता समर के दौरान ब्रिटिश समर टाइम जैसे अन्य टाइमज़ोन पर स्विच कर सकते हैं।)

डेटाटाइम टाइमज़ोन जागरूक

हालांकि, अब तक बनाए गए डेटाटाइम ऑब्जेक्ट्स में से कोई भी आसानी से विभिन्न टाइमज़ोन में परिवर्तित नहीं किया जा सकता है। हम उस समस्या को हल कर सकते हैं pytz मॉड्यूल:

>>> import pytz
>>> then = datetime.datetime.now(pytz.utc)
>>> then
datetime.datetime(2015, 2, 18, 4, 55, 58, 753949, tzinfo=<UTC>)

समान रूप से, पायथन 3 में हमारे पास है timezone एक यूटीसी के साथ कक्षा timezone उदाहरण संलग्न है, जो ऑब्जेक्ट टाइमज़ोन को भी जागरूक बनाता है (लेकिन आसान के बिना किसी अन्य टाइमज़ोन में कनवर्ट करने के लिए pytz मॉड्यूल पाठक के लिए एक अभ्यास के रूप में छोड़ दिया गया है):

>>> datetime.datetime.now(datetime.timezone.utc)
datetime.datetime(2015, 2, 18, 22, 31, 56, 564191, tzinfo=datetime.timezone.utc)

और हम देखते हैं कि हम आसानी से मूल utc ऑब्जेक्ट से टाइमज़ोन में परिवर्तित कर सकते हैं।

>>> print(then)
2015-02-18 04:55:58.753949+00:00
>>> print(then.astimezone(pytz.timezone('US/Eastern')))
2015-02-17 23:55:58.753949-05:00

आप एक बेवकूफ डेटाटाइम ऑब्जेक्ट को भी जागरूक कर सकते हैं pytz समय क्षेत्र localize विधि, या tzinfo विशेषता को बदलकर (के साथ replace, यह अंधाधुंध किया जाता है), लेकिन ये सर्वोत्तम प्रथाओं की तुलना में अधिक अंतिम रिसॉर्ट्स हैं:

>>> pytz.utc.localize(datetime.datetime.utcnow())
datetime.datetime(2015, 2, 18, 6, 6, 29, 32285, tzinfo=<UTC>)
>>> datetime.datetime.utcnow().replace(tzinfo=pytz.utc)
datetime.datetime(2015, 2, 18, 6, 9, 30, 728550, tzinfo=<UTC>)

pytz मॉड्यूल हमें बनाने के लिए अनुमति देता है datetime ऑब्जेक्ट टाइमज़ोन जागरूक और समय में सैकड़ों टाइमज़ोन में कनवर्ट करें pytz मॉड्यूल।

यूटीसी समय और स्टोर के लिए इस ऑब्जेक्ट को स्पष्ट रूप से क्रमबद्ध कर सकता है उस डेटाबेस में, लेकिन इसे अधिक मेमोरी की आवश्यकता होगी और यूनिक्स एपोक टाइम को संग्रहीत करने की तुलना में त्रुटि के अधिक प्रवण होने की आवश्यकता होगी, जिसे मैंने पहले प्रदर्शित किया था।

समय देखने के अन्य तरीके अधिक त्रुटि प्रवण होते हैं, खासकर जब डेटा के साथ अलग-अलग समय क्षेत्र से आते हैं। आप चाहते हैं कि कोई भ्रम न हो कि किस समय एक स्ट्रिंग या क्रमबद्ध डेटाटाइम ऑब्जेक्ट का उद्देश्य था।

यदि आप उपयोगकर्ता के लिए पायथन के साथ समय प्रदर्शित कर रहे हैं, ctime अच्छी तरह से काम करता है, एक टेबल में नहीं (यह आमतौर पर अच्छी तरह से सॉर्ट नहीं करता है), लेकिन शायद एक घड़ी में। हालांकि, मैं व्यक्तिगत रूप से सलाह देता हूं कि पाइथन में समय के साथ काम करते समय, यूनिक्स समय का उपयोग करके, या टाइमज़ोन जागरूक यूटीसी का उपयोग करें datetime वस्तु।


207
2018-02-18 05:08





कर

from time import time

t = time()
  • t - फ्लोट नंबर, समय अंतराल माप के लिए अच्छा है।

यूनिक्स और विंडोज प्लेटफॉर्म के लिए कुछ अंतर है।


113
2018-01-06 13:55





>>> from time import gmtime, strftime
>>> strftime("%a, %d %b %Y %X +0000", gmtime())
'Tue, 06 Jan 2009 04:54:56 +0000'

यह निर्दिष्ट प्रारूप में वर्तमान जीएमटी आउटपुट करता है। एक लोकलटाइम () विधि भी है।

इस पृष्ठ अधिक जानकारी है।


83
2018-01-06 05:02





सभी अच्छे सुझाव, लेकिन मुझे इसका उपयोग करना सबसे आसान लगता है ctime() खुद:

In [2]: from time import ctime
In [3]: ctime()
Out[3]: 'Thu Oct 31 11:40:53 2013'

यह वर्तमान स्थानीय समय का एक अच्छी तरह से स्वरूपित स्ट्रिंग प्रतिनिधित्व देता है।


45
2017-10-31 15:39