es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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'
Tags:  , ,

Answer

  1. Avatar for 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:

    import datetime
    
    # obtener objeto datetime de MySQL
    tiempo = connect("SELECT", """SELECT datTime FROM myTable WHERE ID = 1;""")
    tiempo = tiempo[0][0]
    
    # eliminar los segundos del objeto datetime
    sinSegundosStr = tiempo.strftime("%H:%M")
    tiempoSinSegundos = datetime.datetime.strptime(sinSegundosStr, "%H:%M")
    
    # convertir a formato de hora normal
    horaNormal = tiempoSinSegundos.strftime("%I:%M %p")
    
    print(horaNormal)
    

    En este código, empezamos obteniendo el objeto datetime de MySQL y lo guardamos en tiempo. Luego usamos strftime() para convertir tiempo a una cadena en el formato “HH:MM” sin los segundos, y guardamos el resultado en sinSegundosStr. Después, usamos strptime() para convertir sinSegundosStr de vuelta a un objeto datetime, esta vez sin los segundos.

    Finalmente, usamos strftime() de nuevo para convertir tiempoSinSegundos 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 en horaNormal. Luego imprimimos el resultado.

Comments are closed.