2009-07-15 6 views

Répondre

64

Il est en fait presque le même en Python .. :-)

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

Bien sûr, la date n'a pas de temps associé, donc si vous êtes en voiture e à ce sujet aussi, vous pouvez faire la même chose avec un objet datetime complet:

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

(De toute évidence pas différent, mais vous pouvez stocker datetime.datetime.today() dans une variable avant de saisir l'année, bien sûr).

Une chose importante à noter est que les composants de temps peuvent différer entre les pythons 32 bits et 64 bits dans certaines versions de python (arbre 2.5.x je pense). Donc, vous trouverez des choses comme heure/min/sec sur certaines plates-formes 64 bits, tandis que vous obtenez heure/minute/seconde sur 32 bits.

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

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

a = datetime.datetime.now().year 

ou même

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

Bien que maintenant() se sent plus naturel sur un datetime. datetime.date.today(). Année, peut-être. :) –

+0

Je n'avais pas pensé à ça, et je suppose que ça se sent plus "précis" par rapport au temps, où aujourd'hui() pourrait sembler impliquer une précision des jours. Bizarre que (au moins dans 2.5.4) datetime.today() et datetime.now() font la même chose –

+0

Ils ne sont pas tout à fait le même, datetime.now() accepte un objet timezone, tandis que datetime.today() Il suffit d'appeler fromtimestamp (time.time()), et aujourd'hui() sera toujours dans tout ce que Python pense que votre fuseau horaire local est, alors que vous pouvez obtenir now() pour vous dire des choses un peu plus intéressantes. –

11

Les autres réponses à cette question semblent être sur la bonne voie. Maintenant, comment pourriez-vous comprendre cela par vous-même sans débordement de pile? Découvrez IPython, un shell Python interactif dont l'onglet est complété automatiquement.

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

presse onglet plusieurs fois et vous serez invité les membres de l'objet « maintenant »:

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

+2

En outre, cela: http://docs.python.org/library/datatypes.html Mais merci, je ne savais pas à propos de IPython –

+2

Félicitations pour la résolution de problèmes * - en complément de la solution réelle. –

2

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

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 
Questions connexes