web-dev-qa-db-fra.com

Comment obtenir l'heure actuelle dans python et décomposer en année, mois, jour, heure, minute?

Je voudrais obtenir l'heure actuelle dans Python et les assigner à des variables telles que year, month, day, hour, minute. Comment cela peut-il être fait dans Python 2.7?

226
user781486

Le module datetime est votre ami:

import datetime
now = datetime.datetime.now()
print now.year, now.month, now.day, now.hour, now.minute, now.second
# 2015 5 6 8 53 40

Vous n'avez pas besoin de variables distinctes, les attributs de l'objet datetime renvoyé ont tout ce dont vous avez besoin.

412
tzaman

La réponse datetime de tzaman est beaucoup plus propre, mais vous pouvez le faire avec le module d'origine python time:

import time
strings = time.strftime("%Y,%m,%d,%H,%M,%S")
t = strings.split(',')
numbers = [ int(x) for x in t ]
print numbers

Sortie:

[2016, 3, 11, 8, 29, 47]
24
vossman77

Voici une ligne qui se situe juste en dessous de la ligne des 80 caractères maximum.

import time
year, month, day, hour, minute = map(int, time.strftime("%Y %m %d %H %M").split())
23
rigsby

En décompressant timetuple de l'objet datetime, vous devriez obtenir ce que vous voulez:

from datetime import datetime

n = datetime.now()
t = n.timetuple()
y, m, d, h, min, sec, wd, yd, i = t
13
skyline75489

Pour python

import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)
5
Tajdar Khan Afridi

Voyons comment obtenir et imprimer le jour, le mois et l'année en python à partir de l'heure actuelle:

import datetime

now = datetime.datetime.now()
year = '{:02d}'.format(now.year)
month = '{:02d}'.format(now.month)
day = '{:02d}'.format(now.day)
hour = '{:02d}'.format(now.hour)
minute = '{:02d}'.format(now.minute)
day_month_year = '{}-{}-{}'.format(year, month, day)

print('day_month_year: ' + day_month_year)

résultat:

day_month_year: 2019-03-26
5
Tomer Ben David
import time
year = time.strftime("%Y") # or "%y"
3
xiaoweiz

Vous pouvez utiliser gmtime

from time import gmtime

detailed_time = gmtime() 
#returns a struct_time object for current time

year = detailed_time.tm_year
month = detailed_time.tm_mon
day = detailed_time.tm_mday
hour = detailed_time.tm_hour
minute = detailed_time.tm_min

Remarque: Un horodatage peut être passé à gmtime. Par défaut, l'heure actuelle est renvoyée par time ()

eg.
gmtime(1521174681)

Voir struct_time

2
Sreeragh A R

Trois bibliothèques permettant d’accéder aux dates et aux heures et de les manipuler, à savoir date/heure, flèche et pendule, rendent ces éléments disponibles sous forme de tuplets nommés dont les éléments sont accessibles par nom ou par index. De plus, les articles sont accessibles exactement de la même manière. (Je suppose que si j'étais plus intelligent, je ne serais pas surpris.)

>>> YEARS, MONTHS, DAYS, HOURS, MINUTES = range(5)
>>> import datetime
>>> import arrow
>>> import pendulum
>>> [datetime.datetime.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 15]
>>> [arrow.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 15]
>>> [pendulum.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 16]
2
Bill Bell

C'est une question plus ancienne, mais j'ai proposé une solution que d'autres pourraient aimer.

def get_current_datetime_as_dict():
n = datetime.now()
t = n.timetuple()
field_names = ["year",
               "month",
               "day",
               "hour",
               "min",
               "sec",
               "weekday",
               "md",
               "yd"]
return dict(Zip(field_names, t))

timinguple () peut être compressé avec un autre tableau, ce qui crée des tuples étiquetés. Transformez cela en dictionnaire et le produit résultant peut être utilisé avec get_current_datetime_as_dict()['year'].

Cela a un peu plus de frais généraux que certaines des autres solutions présentées ici, mais j'ai trouvé très agréable de pouvoir accéder aux valeurs nommées pour que clartiy soit dans le code.

1
TopherGopher