Inicio › Herramientas para desarrolladores › Generador de formatos strftime

Generador de formatos strftime

Crea una cadena de formato strftime para datetime de Python o time.h de C haciendo clic en tokens en lugar de memorizarlos. La vista previa se actualiza mientras escribes, cada parte del formato se explica y la herramienta avisa cuando una directiva o un indicador no funcionará en Windows, macOS o glibc.

Última actualización:

Salida
Haz clic en un token para insertarlo en el cursor
Formatos comunes
Qué significa tu formato
Código

Publicidad
Publicidad

Cómo usar Generador de formatos strftime

  1. Elige tu lenguaje y plataforma: Python en Linux/macOS, Python en Windows o C con glibc.
  2. Haz clic en los tokens de la paleta para insertarlos en el cursor, y añade separadores con los botones pequeños o escribiéndolos.
  3. Revisa la salida en la parte superior. Cambia la fecha de la vista previa o alterna entre hora local y UTC para probar casos límite.
  4. Lee los avisos: señalan los códigos que fallan o se comportan de otra forma en la plataforma seleccionada.
  5. Copia el formato o el código generado en tu proyecto.

Referencia de strftime

Los ejemplos usan el sábado 7 de marzo de 2026 a las 14:05:09.123456 en UTC (configuración regional C, nombres en inglés). La última columna indica dónde funciona cada directiva.

CódigoSignificadoEjemploFunciona en
%YAño con siglo2026Todos
%yAño sin siglo26Todos
%mNúmero de mes, relleno con ceros03Todos
%B / %bNombre completo / abreviado del mesMarch / MarTodos
%dDía del mes, relleno con ceros07Todos
%eDía del mes, relleno con espacio 7Todos (Windows mediante el runtime de C moderno)
%jDía del año066Todos
%A / %aDía de la semana completo / abreviadoSaturday / SatTodos
%w / %uNúmero del día de la semana, domingo = 0 / ISO, lunes = 16 / 6Todos
%U / %WSemana del año, empieza en domingo / lunes09 / 09Todos
%G-W%VAño ISO basado en semanas y semana2026-W10Todos
%H / %IHora, reloj de 24 / 12 horas14 / 02Todos
%pAM o PMPMTodos
%M / %SMinuto / segundo05 / 09Todos
%fMicrosegundos123456Solo Python
%zDesfase UTC+0000Todos (Python: solo datetimes con zona horaria)
%:zDesfase UTC con dos puntos+00:00Python 3.12+
%ZNombre de la zona horariaUTCTodos (Python: solo datetimes con zona horaria)
%F / %TAtajos de %Y-%m-%d / %H:%M:%S2026-03-07 / 14:05:09Todos
%k / %l / %PHora de 24 h / 12 h rellena con espacio, am/pm en minúsculas14 /  2 / pmglibc y Python en Linux (%P no en macOS)
%sSegundos desde 1970-01-01 UTC1772892309glibc, macOS; no Windows
%%Un signo de porcentaje literal%Todos

Indicadores de relleno y portabilidad

Un indicador entre el % y la letra cambia el relleno. Son extensiones del estándar de C, así que la compatibilidad depende de la plataforma:

  • %-d: sin relleno (7). glibc, macOS y Python en esos sistemas.
  • %_d: relleno con espacios ( 7). glibc.
  • %^a: mayúsculas (SAT). Solo glibc.
  • %#d: sin relleno en Windows. En glibc, el indicador # invierte las mayúsculas y minúsculas.

Si un mismo script debe funcionar en Linux, macOS y Windows, evita los indicadores y crea el número sin relleno en el código, o usa una biblioteca como Babel o Arrow. En Python, las f-strings aceptan los mismos códigos, así que f"{dt:%Y-%m-%d}" equivale a dt.strftime("%Y-%m-%d").

Cómo elegir un formato

  • Datos legibles por máquinas: ISO 8601 (%Y-%m-%dT%H:%M:%S%z) se ordena correctamente como texto y casi cualquier analizador lo entiende.
  • Nombres de archivo: %Y%m%d_%H%M%S no tiene dos puntos ni barras, que no se permiten en los nombres de archivo de Windows.
  • Cabeceras HTTP y cookies: formatea siempre en UTC y escribe GMT literalmente, como en %a, %d %b %Y %H:%M:%S GMT.
  • Personas: escribe el mes con letras (%B %d, %Y) para evitar la ambigüedad 03/07 frente a 07/03 entre lectores de EE. UU. y de Europa.

¿Necesitas convertir una fecha entre formatos o traducir un patrón a la sintaxis de moment.js o Java? Usa el Convertidor de formatos de fecha. Para valores epoch, consulta el Convertidor de timestamp Unix.

Preguntas frecuentes

¿Qué es strftime?

strftime (string format time) es la función de la biblioteca estándar de C que convierte una fecha y hora en texto según una cadena de formato. datetime.strftime() y time.strftime() de Python, strftime() de PHP, Time#strftime de Ruby y muchas herramientas de logs usan las mismas directivas %, como %Y para el año de cuatro dígitos y %H para la hora.

¿Cómo quito el cero inicial del día o la hora en Python?

En Linux y macOS usa un guion después del signo de porcentaje: %-d da 7 en lugar de 07 y %-I da 3 en lugar de 03. En Windows eso lanza ValueError; usa %#d y %#I en su lugar. Para código que deba funcionar en todas partes, formatea el número tú mismo, por ejemplo f"{dt.day}" o str(dt.hour).

¿Qué diferencia hay entre %U, %W y %V?

%U cuenta las semanas empezando en domingo y %W empezando en lunes; los días anteriores al primer domingo o lunes del año están en la semana 00. %V es el número de semana ISO 8601 (01-53), donde la semana 1 es la que contiene el primer jueves del año. Combina %V con %G, el año ISO basado en semanas, no con %Y.

¿Por qué %z y %Z están vacíos en mi salida de Python?

El datetime es naive, es decir, no tiene tzinfo. Python solo rellena %z y %Z en datetimes con zona horaria. Crea uno con datetime.now(timezone.utc) o datetime.now().astimezone(), o asigna una zona con zoneinfo.ZoneInfo.

¿Admite microsegundos strftime de C?

No. %f es un añadido de Python; struct tm de C no tiene ningún campo menor que un segundo. En C, obtén precisión de fracciones de segundo con clock_gettime() y añade la fracción tú mismo.

¿Por qué %c se ve distinto en Windows?

%c, %x y %X usan la configuración regional actual. Con la configuración regional C predeterminada, glibc imprime %c como 'Sat Mar 7 14:05:09 2026', mientras que el runtime de Windows imprime '03/07/26 14:05:09'. Usa un formato explícito como %Y-%m-%d %H:%M:%S cuando importe la salida exacta.

¿Puedo usar el mismo formato para analizar una fecha con strptime?

Normalmente sí: datetime.strptime(text, format) acepta los mismos códigos para las directivas comunes. No acepta los indicadores de relleno (%-d) ni atajos como %F, %T y %e, así que la herramienta te dice qué partes debes reescribir antes de analizar.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Formateadores y validadores de código →