semana - strftime python
¿Cómo obtener la hora actual en Python y dividirla en año, mes, día, hora y minuto? (11)
Me gustaría obtener la hora actual en Python y asignarlos a variables como
year
,
month
,
day
,
hour
,
minute
.
¿Cómo se puede hacer esto en Python 2.7?
Al desempaquetar
timetuple
del objeto datetime, 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
Aquí hay una línea que viene justo debajo de la línea de 80 caracteres máx.
import time
year, month, day, hour, minute = map(int, time.strftime("%Y %m %d %H %M").split())
El módulo de
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.
Esta es una pregunta anterior, 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.
Transmita eso a un diccionario y el producto resultante se puede consumir con
get_current_datetime_as_dict()[''year'']
.
Esto tiene un poco más de gastos generales 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.
La respuesta de
datetime
de
tzaman
es mucho más limpia, pero puede hacerlo con el módulo de
time
original de Python:
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]
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: Se puede pasar una marca de tiempo a gmtime, el valor predeterminado es la hora actual tal como la devuelve time ()
eg.
gmtime(1521174681)
Ver struct_time
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 tuplas con nombre cuyos elementos son accesibles por nombre o índice. Además, los artículos son accesibles exactamente 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]
Veamos cómo obtener e imprimir 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
puede usar el módulo datetime para obtener la fecha y hora actual en Python 2.7
import datetime
print datetime.datetime.now()
Salida:
2015-05-06 14:44:14.369392
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"