2009-07-15 22 views
50

मैं पाइथन का उपयोग कर वर्तमान तारीख से वर्ष निकालना चाहता हूं।एक पायथन डेटाटाइम ऑब्जेक्ट से वर्ष निकालने के लिए कैसे?

सी # में, यह लगता है कि:

DateTime a = DateTime.Now() 
a.Year 

क्या अजगर में आवश्यक है?

उत्तर

64

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

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

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

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

(जाहिर है अलग नहीं है, लेकिन आप datetime.datetime.today() एक चर में इससे पहले कि आप हड़पने साल, निश्चित रूप से स्टोर कर सकते हैं)।

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

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

या यहाँ तक कि (जैसा कि Lennart सुझाव)

a = datetime.datetime.now().year 

या यहाँ तक कि

a = datetime.date.today().year 
+1

हालांकि अब() एक datetime के बारे में अधिक प्राकृतिक महसूस करता है। datetime.date.today() वर्ष, शायद। :) –

+0

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

+0

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

11

इस प्रश्न के अन्य उत्तर इसे स्पॉट पर लगते हैं। अब स्टैक ओवरफ्लो के बिना आप इसे अपने लिए कैसे समझेंगे? 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

इसके अलावा, यह भी: http://docs.python.org/library/datatypes.html लेकिन धन्यवाद, मुझे नहीं पता था कि आईपीथॉन –

+2

समस्या के लिए कुडोस * हल करने * - वास्तविक समाधान का पूरक। –

2

यदि आप चाहते हैं एक (अज्ञात) datetime-वस्तु से साल:

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 
संबंधित मुद्दे

 संबंधित मुद्दे