¿Cómo obtener la hora actual en Python y dividirse en año, mes, día, hora, minuto?

Me gustaría obtener la hora actual en Python y asignarla a variables como year , month , day , hour , minute . ¿Cómo se puede hacer esto en Python 2.7?

El módulo datetime es tu amigo:

 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 

No necesita variables separadas, los atributos en el objeto datetime devuelto tienen todo lo que necesita.

La respuesta de datetime anterior es mucho más limpia, pero puede hacerlo con el módulo de time python original:

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

Salida:

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

Aquí hay una sola línea que viene justo por debajo del máximo de 80 caracteres.

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

Al descomprimir el timetuple del objeto de fecha y hora, debe obtener lo que desea:

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

Para python 3

 import datetime now = datetime.datetime.now() print(now.year, now.month, now.day, now.hour, now.minute, now.second) 
 import time year = time.strftime("%Y") # or "%y" 

Veamos cómo obtener e imprimir el día, mes, año en python desde la hora actual:

 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) 

resultado:

 day_month_year: 2019-03-26 

Tres bibliotecas para acceder y manipular fechas y horas, a saber, fecha y hora, flecha y péndulo, hacen que estos elementos estén disponibles en grupos con nombre cuyos elementos son accesibles por nombre o por índice. Por otra parte, los artículos son accesibles de la misma manera. (Supongo que si fuera más inteligente no me sorprendería).

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

Puedes usar 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 

Nota: una marca de tiempo se puede pasar a gmtime, el valor predeterminado es la hora actual devuelta por time ()

 eg. gmtime(1521174681) 

Ver struct_time

Esta es una pregunta antigua, pero se me ocurrió una solución que pensé que a otros les gustaría.

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

timetuple () se puede comprimir con otra matriz, lo que crea tuplas etiquetadas. Envíelo a un diccionario y el producto resultante se puede consumir con get_current_datetime_as_dict()['year'] .

Esto tiene un poco más de sobrecarga que algunas de las otras soluciones aquí, pero he encontrado que es muy bueno poder acceder a los valores con nombre por el bien de Clartiy en el código.

puede usar el módulo datetime para obtener la Fecha y Hora actuales en Python 2.7

 import datetime print datetime.datetime.now() 

Salida:

 2015-05-06 14:44:14.369392