2009-07-15 1 views

Antwort

64

Es ist in der Tat fast das gleiche in Python .. :-)

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

Natürlich, Datum hat keine Zeit zugeordnet, also wenn Sie Auto e über das auch, können Sie das gleiche mit einem vollständigen Datetime-Objekt tun:

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

(Offensichtlich nicht anders, aber man kann datetime.datetime.today() in einer Variablen speichern, bevor Sie das Jahr greifen, natürlich).

Eine wichtige Sache zu beachten ist, dass die Zeitkomponenten zwischen 32-Bit- und 64-Bit-Pythons in einigen Python-Versionen (2.5.x Baum denke ich) unterscheiden können. So werden Sie auf einigen 64-Bit-Plattformen Dinge wie Stunde/Minute/Sekunde finden, während Sie 32-Bit-Stunden/Minute/Sekunde erhalten.

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

oder sogar (wie Lennart vorgeschlagen)

a = datetime.datetime.now().year 

oder sogar

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

Obwohl jetzt() fühlt sich natürlicher an einem Datetime. datetime.date.today(). Jahr, vielleicht. :) –

+0

Ich hatte nicht darüber nachgedacht, und ich denke, es fühlt sich mehr "genau" in Bezug auf die Zeit, wo heute() scheinen könnte, eine Präzision von Tagen implizieren. Seltsam, dass (zumindest in 2.5.4) datetime.today() und datetime.now() dasselbe tun –

+0

Sie sind nicht ganz gleich, datetime.now() akzeptiert ein Zeitzonenobjekt, während datetime.today() ruft nur von timestamp (time.time()) auf, und so wird today() immer in dem sein, was Python für deine lokale Zeitzone hält, während du dir jetzt() ein paar interessantere Dinge erzählen kannst. –

11

Die anderen Antworten auf diese Frage scheinen es zu treffen. Nun, wie würdest du das ohne Stacküberlauf herausfinden? Schauen Sie sich IPython an, eine interaktive Python-Shell, die eine automatische Vervollständigung der Registerkarte bietet.

> 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. 

Tabulatortaste drücken, ein paar Mal, und Sie werden mit den Mitgliedern des „Jetzt“ Objekt aufgefordert:

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 

und Sie werden sehen, dass now.year ist Mitglied das "jetzt" -Objekt.

+2

Auch dies: http://docs.python.org/library/datatypes.html Aber ich danke Ihnen, ich wusste nicht über IPython –

+2

Kudos für Problem * lösen * - Ergänzen der tatsächlichen Lösung. –

2

Wenn Sie das Jahr von einem (unbekannt) Datetime-Objekt wollen:

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