Convertir la fecha y hora en formato estándar en Python.
Estoy tratando de convertir datos de tiempo que se muestran en horas, minutos y segundos en tiempo estándar. También quiero descartar los segundos. Estoy seleccionando la fecha y hora de MySQL de la siguiente manera:
time = connect("SELECT", "SELECT datTime FROM myTable WHERE ID = 1;")
Luego obtengo solo la hora haciendo esto:
time = time[0][0].time()
Y he intentado varios métodos para convertir el tiempo en tiempo estándar sin los segundos, como:
noSeconds = time.strftime("%H:%M")
timeNoSec = datetime.strptime(noSeconds, '%H:%M')
standardTime = noSeconds.strftime('%I:%M %p')
print(standardTime)
Pero solo obtengo el siguiente error:
AttributeError: 'str' object has no attribute 'strftime'
davy.ai
Para descartar los segundos de un objeto datetime en Python, puedes usar el método strftime() para convertir el objeto datetime a una cadena en el formato deseado, luego usar strptime() para convertirlo de vuelta a un objeto datetime sin los segundos. Aquí tienes un ejemplo de código:
En este código, empezamos obteniendo el objeto datetime de MySQL y lo guardamos en
tiempo
. Luego usamosstrftime()
para convertirtiempo
a una cadena en el formato “HH:MM” sin los segundos, y guardamos el resultado ensinSegundosStr
. Después, usamosstrptime()
para convertirsinSegundosStr
de vuelta a un objeto datetime, esta vez sin los segundos.Finalmente, usamos
strftime()
de nuevo para convertirtiempoSinSegundos
a una cadena en el formato de hora normal deseado (usando “%I” para la hora en formato de 12 horas con ceros iniciales, “%M” para los minutos y “%p” para AM o PM), y guardamos el resultado enhoraNormal
. Luego imprimimos el resultado.