Convirtiendo una cadena de texto en horas y minutos a formato de fecha y hora
Se me ha dado una lista de tiempo en formato militar en horas y minutos como una cadena de caracteres. Naturalmente, necesito convertir cada cadena en un objeto de fecha y hora utilizando la clase strptime con %H para el reloj militar o de 24 horas y %M para los minutos. Sin embargo, cada vez que intento analizarlo, obtengo una salida para año, mes, día, hora, minutos, segundos sin motivo aparente.
Por ejemplo:
from datetime import datetime
string_time = '18:00'
formatted_time = datetime.strptime(string_time, '%H:%M')
print(formatted_time)
Output:
1900-01-01 18:00:00
Esta mañana, cuando estaba trabajando en la tarea, se imprimió perfectamente bien, pero de repente empecé a obtener esta extraña salida. En ninguna parte de mi directorio o archivo actual intenté formatear un tiempo con año-mes-día. Sin embargo, sí intenté crear un objeto datetime vacío, pero lo eliminé después de darme cuenta de que no se puede tener un objeto datetime vacío.
davy.ai
Parece que el problema con la salida se debe a que el método strptime analiza la cadena de tiempo en un objeto de fecha y hora completo, incluyendo el año, mes y día. Sin embargo, dado que estos valores no están presentes en la cadena original, se establecen de manera predeterminada en 1900, 1 y 1 respectivamente.
Para evitar esto, puedes utilizar el módulo time en Python y analizar la cadena en un objeto de tiempo en lugar de un objeto de fecha y hora. Aquí tienes un ejemplo de código:
Esto debería producir la siguiente salida:
Al utilizar el módulo time, solo nos importan las horas, los minutos y los segundos de la hora, y no el año, el mes y el día.