Vamos a observar la selección de especificadores de conversión usados en el siguiente programa:
Cuando compilemos el programa
strftime.c
y lo ejecutemos, obtendremos:
El programa
strftime
obtiene la hora local actual mediante time
y localtime
.
Después lo convierte en una fórmula legible solicitando
strftime
con un argumento de formato adecuado.
Para demostrar el uso de
strptime
, el programa establece una cadena que contiene una fecha y una hora, después llama a strptime
para extraer los valores de fecha y hora en bruto y posteriormente lo muestra. El especificador de conversión %R
es una abreviatura de %H:%M
en strptime
.
Es importante tener en cuenta que strptime necesita una cadena de formato precisa para poder escanear la fecha con éxito. Normalmente, no escaneará con precisión las fechas que provengan de cadenas introducidas por el usuario, a menos que el formato esté muy restringido.
Es posible que el compilador emita una advertencia cuando compile strftime.c. Esto se debe a que la biblioteca GNU no declara por defecto a strptime. La solución es solicitar expresamente las prestaciones estándar de X/Open, añadiendo la siguiente línea antes de incluir time.h:
#define _XOPEN_SOURCE