पायथन डेटाइम ऑब्जेक्ट से वर्ष कैसे निकालें?


107

मैं पाइथन का उपयोग करके वर्तमान तिथि से वर्ष निकालना चाहूंगा।

C # में, ऐसा दिखता है:

 DateTime a = DateTime.Now() 
 a.Year

पायथन में क्या आवश्यक है?

जवाबों:


155

यह वास्तव में अजगर में लगभग एक ही है .. :-)

import datetime
year = datetime.date.today().year

बेशक, तारीख में एक समय जुड़ा नहीं है, इसलिए यदि आप उस बारे में भी परवाह करते हैं, तो आप पूरी डेटटाइम ऑब्जेक्ट के साथ भी ऐसा कर सकते हैं:

import datetime
year = datetime.datetime.today().year

(जाहिर है कि कोई भिन्न नहीं है, लेकिन आप वर्ष के दौरान, निश्चित रूप से) हड़पने से पहले एक चर में datetime.datetime.today () स्टोर कर सकते हैं।

एक महत्वपूर्ण बात यह है कि समय के घटक कुछ अजगर संस्करणों (2.5.x पेड़ जो मुझे लगता है) में 32-बिट और 64-बिट अजगर के बीच भिन्न हो सकते हैं। तो आपको कुछ 64-बिट प्लेटफार्मों पर घंटे / मिनट / सेकंड जैसी चीजें मिलेंगी, जबकि आपको 32-बिट पर घंटे / मिनट / सेकंड मिलते हैं।


1
datetime.datetime.today () वर्ष ने पायथन 3 के लिए काम नहीं किया। यह एक त्रुटि लौटाता है AttrError: ऑब्जेक्ट ऑब्जेक्ट 'datetime.datetime' में कोई विशेषता नहीं है 'datetime' । मुझे datetime.today ()।
Year

2
@Wumm, ऐसा इसलिए था क्योंकि आपने "डेटाटाइम आयात डेटाटाइम" से डेटाटाइम आयात किया था। यदि आपने बस "आयात डेटाइम" किया था, तो समाधान ठीक काम करेगा। यह बिल्कुल वैसा ही है जैसा आपके पास है।
एपर्टोनोटस

26
import datetime
a = datetime.datetime.today().year

या यहां तक ​​कि (जैसा कि लेनार्ट ने सुझाव दिया )

a = datetime.datetime.now().year

या और भी

a = datetime.date.today().year

1
हालांकि अब () डेटाइम पर अधिक स्वाभाविक लगता है। datetime.date.today ()। वर्ष, हो सकता है। :)
लेन्नर्ट रेग्रोब

मैंने उस बारे में सोचा नहीं था, और मुझे लगता है कि यह समय के संबंध में अधिक "सटीक" महसूस करता है, जहां आज () दिनों की सटीक लग सकता है। अजीब है कि (कम से कम 2.5.4 में) datetime.today () और datetime.now () एक ही काम करते हैं

वे काफी समान नहीं हैं, datetime.now () एक टाइमज़ोन ऑब्जेक्ट को स्वीकार करता है, जबकि डेटटाइम.टोडे () सिर्फ fromtimestamp (time.time ()) को कॉल करता है, और इसलिए आज () हमेशा जो कुछ भी पायथन आपके स्थानीय टाइमज़ोन को सोचेगा है, जबकि आप अभी () आपको कुछ और दिलचस्प बातें बताने के लिए मिल सकते हैं।
निक बैस्टिन

17

इस सवाल के अन्य जवाब इसे मौके पर हिट करने के लिए लग रहे हैं। अब आप स्टैक ओवरफ्लो के बिना अपने लिए यह कैसे पता लगाएंगे? की जाँच करें IPython , एक इंटरैक्टिव अजगर खोल है कि टैब स्वत: पूर्ण।

> ipython
import Python 2.5 (r25:51908, Nov  6 2007, 16:54:01)
Type "copyright", "credits" or "license" for more information.

IPython 0.8.2.svn.r2750 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.

In [1]: import datetime
In [2]: now=datetime.datetime.now()
In [3]: now.

टैब को कुछ बार दबाएं और आपको "अब" ऑब्जेक्ट के सदस्यों के साथ संकेत दिया जाएगा:

now.__add__           now.__gt__            now.__radd__          now.__sub__           now.fromordinal       now.microsecond       now.second            now.toordinal         now.weekday
now.__class__         now.__hash__          now.__reduce__        now.astimezone        now.fromtimestamp     now.min               now.strftime          now.tzinfo            now.year
now.__delattr__       now.__init__          now.__reduce_ex__     now.combine           now.hour              now.minute            now.strptime          now.tzname
now.__doc__           now.__le__            now.__repr__          now.ctime             now.isocalendar       now.month             now.time              now.utcfromtimestamp
now.__eq__            now.__lt__            now.__rsub__          now.date              now.isoformat         now.now               now.timetuple         now.utcnow
now.__ge__            now.__ne__            now.__setattr__       now.day               now.isoweekday        now.replace           now.timetz            now.utcoffset
now.__getattribute__  now.__new__           now.__str__           now.dst               now.max               now.resolution        now.today             now.utctimetuple

और आप देखेंगे कि now.year "अब" ऑब्जेक्ट का एक सदस्य है।


2
इसके अलावा, यह: docs.python.org/library/datatypes.html लेकिन धन्यवाद, मुझे नहीं पता था कि IPython के बारे में

2
समस्या समाधान के लिए यश - वास्तविक समाधान का पूरक।
आइसलैंड_जैक जू

उन लोगों के लिए जो आईपाइथन स्थापित नहीं करना चाहते हैं, आप संभावित तरीकों और विशेषताओं को देखने के लिए किसी भी समारोह या वर्ग को dir के साथ लपेट सकते हैं। जैसे, dir (datetime.datetime.now) आपको ipython में टैब दबाने जैसे उपलब्ध कार्य देगा।
सौरव पाठक

6

यदि आप वर्ष को अज्ञात (अज्ञात) डेटाटाइम-ऑब्जेक्ट से चाहते हैं:

tijd = datetime.datetime(9999, 12, 31, 23, 59, 59)

>>> tijd.timetuple()
time.struct_time(tm_year=9999, tm_mon=12, tm_mday=31, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=4, tm_yday=365, tm_isdst=-1)
>>> tijd.timetuple().tm_year
9999
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.