En este post te voy a mostrar a obtener la fecha actual en C, además de formatearla (para extraer el año, mes, día, etcétera). Las funciones que vamos a ver son: time, localtime y strftime.
Con la función time
obtenemos el tiempo (como entero) actual. Usando localtime
obtenemos un struct
de tipo tm
, necesario para más tarde formatear la fecha con strftime
.
Aunque suena complicado al inicio, la verdad es que es muy sencillo.
Veamos el siguiente ejemplo de código que muestra la fecha en formato YYYY-MM-DD HH:MM:SS
Primero obtenemos el tiempo actual usando la función time
; almacenamos el valor dentro de la variable t
.
Más tarde, creamos una variable de tipo tm
la cual será el resultado de llamar a localtime
pasándole la variable t
antes mencionada.
Eso es todo lo que necesitas para obtener la fecha actual en ANSI C. A continuación detallaré el uso de las funciones.
Por cierto, la salida es la siguiente:
Si quieres compilarlo recuerda instalar el compilador en Windows o Android, aunque igual puedes ejecutarlo en línea (en el servidor que aloja el código la hora varía debido a la ubicación).
Vamos a la explicación. Sordid details following…
El tipo tm
tiene muchos campos que de hecho ya podríamos usar para obtener los detalles de la fecha como el año, mes o día.
Por ejemplo, para los segundos actuales podríamos acceder a tiempoLocal.tm_sec
.
Los campos que tiene (todos enteros) son:
Puedes ver una descripción más detallada de esos campos en este enlace.
Como sería un poco complejo usar el struct de tm
, mejor usamos strftime
que formatea una fecha.
La función strftime
necesita un formato como cadena, dicho formato está compuesto de letras que tienen un significado.
De esta forma, %Y-%m-%d %H:%M:%S; se convierte en 2019-07-31 16:36:48.
Cada letra representa un dato que se quiere obtener de la fecha y se usa el signo de porcentaje para indicar que el mismo debe ser remplazado por el valor de la fecha actual.
Por ejemplo:
%Y
– El año%m
– El mes%d
– El día%H
– La hora en formato de 24 horas%M
– Los minutos%S
– Los segundosHay más formatos que puedes ver aquí.
Si se coloca una letra o carácter que no tiene uso específico, el mismo es ignorado (se puede ver en los dos puntos y en los guiones)
La función strftime
toma argumentos en el siguiente orden:
La función strftime
en C devuelve el número de bytes que escribió dentro del búfer indicado; pero si hubo un error (por ejemplo, un mal formato de fecha) entonces devuelve 0.
Ese resultado se utiliza para comprobar si el formateo fue correcto, y de esta manera finalmente tenemos la fecha formateada dentro del búfer.
Así de simple se obtiene la fecha y hora actual en C.
Con la función strftime
puedes obtener la fecha que quieras, aprendiendo sobre los formateadores y su uso.
Lo sé, yo también creo que es mucho código, pero así es C.
La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…
Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…
El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…
El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…
En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…
Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…
Esta web usa cookies.