Curso de Python desde cero

El manejo de fechas en Python con strftime()

Capítulo 46: Fechas con el método strftime() de Python

En este capítulo verás el método strftime() con el que podrás formatear las fechas en strings de Python.

Formatos de fecha en Python

Empecemos viendo las opciones de formatos de fecha que tenemos:

Opción Directiva Ejemplo
%a Día de la semana abreviado. Fri
%A Día de la semana completo. Friday
%b Mes abreviado. Sep
%B Mes completo. September
%c Día de la semana abreviado + mes abreviado + número del día del mes + hora + minutos + segundos + año. Fri Sep 11 13:18:26 2020
%C Número de siglo. Empieza a contar desde 0, por eso cuenta uno menos del esperado. 20
%d Día del mes (01 a 31). 07
%D Día/hora/año. 09/11/20
%e Día del mes (1 a 31). 7
%g Año en dos dígitos. 20
%g Año en cuatro dígitos. 2020
%h Mes abreviado (igual que %b). Sep
%H Hora de 00 a 23. 15
%I Hora de 01 a 12. 03
%j Día del año del 001 al 366. 255
%m Mes del 01 al 12. 09
%M Minuto. 16
%n Salto de línea. El efecto es cómo pulsar la tecla ENTER en un editor de texto.
%p AM o PM. PM
%r Hora + AM o PM. 03:21:58 PM
%R Hora + AM o PM. 15:24
%S Segundos. 13
%t Tabulación. El efecto es cómo pulsar la tecla TAB en un editor de texto.
%T Hora, minutos y segundos. 14:30:45
%u Día de la semana (número). 5
%U Semana del año (empieza en domingo). 36
%V Semana del año (condiciones especiales). 37
%W Semana del año (empieza en lunes). 36
%w Día de la semana(empieza en domingo). 5
%x Día/mes/año de dos dígitos. 09/11/20
%X Hora/minutos/segundos. 02:30:45 PM
%y Año corto. 20
%Y Año largo. 2020

Aquí tienes unos ejemplos para que veas lo que devuelven en la consola, te recomiendo que los pruebes, ya que se muestran los datos con el now() y por lo tanto, se muestra el instante de la ejecución, por lo que evidentemente, te saldrán otras fechas.

import datetime

ahora = datetime.datetime.now()

print(ahora.strftime("Día de la semana abreviado: %a "))
print(ahora.strftime("Día de la semana completo: %A "))
print(ahora.strftime("Mes abreviado: %b "))
print(ahora.strftime("Mes abreviado: %B "))
print(ahora.strftime("Fecha completa: %c "))
print(ahora.strftime("Siglo (empieza a contar desde cero): %C "))
print(ahora.strftime("Día del mes (01 - 31): %d "))
print(ahora.strftime("Día/hora/año: %D "))
print(ahora.strftime("Día del mes (1 - 31): %e "))
print(ahora.strftime("Año en dos dígitos: %g "))
print(ahora.strftime("Año en cuatro dígitos: %G "))
print(ahora.strftime("Mes abreviado: %h "))
print(ahora.strftime("Hora (00 - 23): %H "))
print(ahora.strftime("Hora (01 - 12): %I "))
print(ahora.strftime("Día del año: %j "))
print(ahora.strftime("Mes del 01 al 12: %m "))
print(ahora.strftime("Minuto: %M "))
print(ahora.strftime("Salto de línea: %n"))
print(ahora.strftime("AM o PM: %p "))
print(ahora.strftime("Hora + AM o PM: %r"))
print(ahora.strftime("Hora y minutos: %R"))
print(ahora.strftime("Segundos: %S"))
print(ahora.strftime("Tabulación: %t"))
print(ahora.strftime("Hora, minutos y segundos: %T"))
print(ahora.strftime("Día de la semana (número): %u"))
print(ahora.strftime("Semana del año (empieza en domingo): %U"))
print(ahora.strftime("Semana del año(Condiciones especiales): %V"))
print(ahora.strftime("Semana del año (empieza en lunes): %W"))
print(ahora.strftime("Día de la semana (empieza en domingo): %w"))
print(ahora.strftime("Día/mes/año de dos dígitos: %x"))
print(ahora.strftime("Hora/minutos/segundos: %X"))
print(ahora.strftime("Año corto: %y"))
print(ahora.strftime("Año largo: %Y"))
Día de la semana abreviado: Fri
Día de la semana completo: Friday
Mes abreviado: Sep
Mes abreviado: September
Fecha completa: Fri Sep 11 15:52:09 2020
Siglo (empieza a contar desde cero): 20
Día del mes (01 - 31): 11
Día/hora/año: 09/11/20
Día del mes (1 - 31): 11
Año en dos dígitos: 20
Año en cuatro dígitos: 2020
Mes abreviado: Sep
Hora (00 - 23): 15
Hora (01 - 12): 03
Día del año: 255
Mes del 01 al 12: 09
Minuto: 52
Salto de línea:

AM o PM: PM
Hora + AM o PM: 03:52:09 PM
Hora y minutos: 15:52
Segundos: 09
Tabulación:	 .
Hora, minutos y segundos: 15:52:09
Día de la semana (número): 5
Semana del año (empieza en domingo): 36
Semana del año(Condiciones especiales): 37
Semana del año (empieza en lunes): 36
Día de la semana (empieza en domingo): 5
Día/mes/año de dos dígitos: 09/11/20
Hora/minutos/segundos: 15:52:09
Año corto: 20
Año largo: 2020

Este tema de las fechas podría alargarse mucho más, pero lo voy a dejar aquí en este curso para que no te aburra demasiado y puedas aprender más cosas.
Por cierto, puedes ver en el vídeo cómo transformar las fechas a español, por ejemplo, "Fry" o "Friday" que salga como "vie" o viernes.
Te dejo un enlace a la documentación oficial de Python del módulo datetime para que la tengas a mano cuando la necesites:

Módulo datetime

Comentarios

Si te quedan dudas sobre el temario, sobre Python, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.