En este post veremos dos cosas para trabajar con la fecha y hora en Python:

  1. Cómo obtener la fecha y hora actual, separada por año, mes, día, hora, minuto, segundo y microsegundos
  2. Formatear la fecha y hora en Python para que sea legible y amigable.
Formatear y obtener fecha y hora actual en Python 3

Formatear y obtener fecha y hora actual en Python 3

Veremos algunos formatos útiles, como “Miércoles, 19 de diciembre del 2018” o “2018/12/19“, también con la hora, por ejemplo “Miércoles, 19 de diciembre del 2018. 7:30 AM” o incluso únicamente la hora, por ejemplo, “11:30 PM” o “23:10:15

Requisitos previos

Se necesita tener instalado Python 3 y PIP.

Obtener fecha y hora actual en Python

Primero se debe importar el objeto datetime del módulo datetime, así:

from datetime import datetime

Después, con datetime podemos llamar a now(), lo cual devuelve un objeto que tiene todas las propiedades que necesitamos para analizar la fecha actual.

Con ese objeto ya podemos crear todo tipo de formatos de fechas. A partir del mes saber su nombre, a partir de la hora saber si es AM o PM, etcétera.

Para ello, tendríamos que concatenar. Por dar un ejemplo:

fecha = "{}-{}-{}".format(ahora.year, ahora.month, ahora.day)

Aunque eso sería un poco engorroso y complicado en casos más grandes, así que, ¿por qué reinventar la rueda, si el lenguaje ya provee una forma de formatear fechas y horas?

Formatear fecha y hora en Python con strftime

Para formatear una fecha y hora en Python, la cual es obtenida con la función now, podemos llamar a strftime. Este método recibe el formato que deseamos, y devuelve la fecha formateada. Obtenemos la fecha y hora actual:

ahora = datetime.now()

Y luego formateamos, en este caso con algo como 2018-12-19:

print("Algo como 2018-12-19 => ", ahora.strftime("%Y-%m-%d"))

Llamamos al método strftime y le pasamos formateadores, el de %Y simboliza el año de 4 dígitos, el %m como mes y el %d el día.

¿De dónde salen estos formatos? de esta lista oficial.

Vamos a ver algunos casos comunes que seguramente a más de uno le servirán, pero por eso dejo ahí la lista de formateadores en caso de que las necesidades sean distintas.

Obtener la fecha y hora con nombre del día y nombre del mes

Como lo dije al inicio, se verá cómo obtener el nombre del día y el nombre del mes. Algo que imprimirá algo parecido a lo siguiente:

Miércoles, 19 de Diciembre del 2018

Aquí el código:

Utilizamos un diccionario y el método get del mismo para obtener el valor a partir del número de mes o día, luego simplemente formateamos una cadena.

Año, mes y día con hora completa

Otro formato útil es el que tiene la forma de “2018-12-19 20:15:22”. Esto es más fácil que el ejemplo anterior:

Lo único que se hace es aprovechar la función y los símbolos de formato que existen.

La hora en formato de 24 horas

Siguiendo con los formatos de fechas, veamos cómo obtener la hora en formato de 24 horas; esto es que, por ejemplo, a las 3 de la tarde sean a las 15 horas. El código es este:

Hora actual con AM o PM

Para terminar y mostrar AM o PM en la hora actual, con formato de 12 horas, se usa el modificador %p para el momento del día, así como el modificador %I en lugar del %H para la hora.

El código de ejemplo queda así:

Conclusión

Así de fácil es formatear fechas y horas en Python. Recuerda que siempre puedes comentar si tienes dudas.

Estoy interesado en trabajar contigo de manera remota para llevar tu idea a la realidad, formar parte de tu equipo de desarrolladores, ayudarte con tu tarea, dar asesorías y todo lo relacionado con tecnología y programación. Contáctame para más información
No te vayas sin seguirme en Twitter, Facebook y GitHub
Si tienes dudas déjalas en un comentario, pero asegúrate de seguirme antes como agradecimiento (no te cuesta nada y me ayudas mucho)


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB. Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron. Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scripts La plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C. Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

1 Comment

Equivalente a STRFTIME de SQLite en MySQL - Parzibyte's blog · diciembre 19, 2018 a las 11:47 pm

[…] función de strftime me recuerda a cuando formateamos fechas en Python. Pero bueno, STRFTIME formatea una fecha, así de simple. Su sintaxis […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: