2013-08-13 1 views
1

Je voudrais savoir pourquoi la méthode maintenant a été implémentée sous le label datetime.datetime au lieu de datetime.time?Pourquoi la méthode maintenant en Python est obtenue en tant que datetime.datetime.now au lieu de datetime.time.now?

Par exemple, pour obtenir la date du jour sur python, procédez comme suit.

import datetime 
print datetime.date.today() 

mais vous ne pouvez pas la même chose pour le temps maintenant, je veux dire

print datetime.time.now() 

Au lieu de cela vous avez à effectuer les opérations suivantes:

print datetime.datetime.now() 

Répondre

6

"Maintenant" est un point temps. Cela signifie que la date compte; s'il est midi maintenant, hier midi non plus maintenant. (L'heure de la journée compte également, 9 AM aujourd'hui n'est pas maintenant.) Ainsi, il est logique d'avoir un datetime.datetime.now, mais pas un datetime.time.now. Il pourrait être logique d'avoir un datetime.time.currentlocaltime ou datetime.time.currentutctime, mais ces méthodes n'existent pas. Vous pouvez mettre une demande de fonctionnalité si vous le souhaitez.

+0

Bonne réponse. [Les docs] (http://docs.python.org/2/library/datetime.html#available-types) indiquent explicitement que 'datetime.time' est" un temps idéalisé, indépendant d'un jour particulier ", et" maintenant "n'est évidemment pas indépendant d'un jour particulier ... – abarnert

+0

Un peu ergoter: Contrairement à' datetime.datetime', 'datetime.time' est implicitement un moment de la journée locale ou tz-aware; un 'temps 'actuel UTC n'a de sens que pour une heure locale (naïve ou consciente) où le fuseau horaire local est UTC. Extrait de [the docs] (http://docs.python.org/3/library/datetime.html#time-objects): "Un objet temporel représente un moment de la journée (local) ... soumis à un ajustement via un' tzinfo' objet." – abarnert

+0

+1 Bonne explication. –

Questions connexes