web-dev-qa-db-fra.com

Comment extraire l’année d’un objet Python datetime?

Je voudrais extraire l'année de la date actuelle en utilisant Python.

En C #, cela ressemble à:

 DateTime a = DateTime.Now() 
 a.Year

Qu'est-ce qui est requis en Python?

78
grobartn

C'est en fait presque la même chose en Python .. :-)

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

Bien sûr, l'heure n'est pas associée à la date, donc si vous en tenez à cela, vous pouvez faire de même avec un objet datetime complet:

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

(Évidemment, ce n'est pas différent, mais vous pouvez stocker datetime.datetime.today () dans une variable avant de saisir l'année, bien sûr).

Un élément clé à noter est que les composants temporels peuvent différer entre les pythons 32 bits et 64 bits dans certaines python (arbre 2.5.x je pense). Vous trouverez donc des choses comme heure/min/sec sur certaines plates-formes 64 bits, tandis que vous obtenez l'heure/minute/seconde sur 32 bits.

104
Nick Bastin
import datetime
a = datetime.datetime.today().year

ou même (comme Lennart a suggéré )

a = datetime.datetime.now().year

ou même

a = datetime.date.today().year
19
Chris Cameron

Les autres réponses à cette question semblent l’être. Maintenant, comment vous en sortiriez-vous par vous-même sans débordement de pile? Découvrez IPython , un shell interactif Python) doté d'un onglet auto-complet.

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

appuyez plusieurs fois sur l'onglet et les membres de l'objet "now" vous y inviteront:

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

et vous verrez que now.year est membre de l'objet "now".

14
Pete

Si vous voulez l'année d'un objet datetime (inconnu):

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
4
Collin Kleiboer