Descubre para qué sirve una Marca de Tiempo
Tags: programming, beginners, spanish
Published: 2022-01-10 09:19:09

> _Mi apodo en las redes es [__Coding Bugs__][Dashboard] y llevo más de 15 años trabajando como desarrollador y arquitecto de software. En mi [dashboard][Dashboard] encontrarás artículos con nformación sobre lenguajes de programación, técnicas de programación y otros conceptos que te ayudarán a mejorar._

La _"Marca de tiempo"_, o _"timestamp"_ en inglés, es una forma de marcar los datos estableciendo el valor de la fecha y hora. El ejemplo más sencillo se corresponde con un conjunto de datos y el momento de su creación, es decir, cada registro guardará la fecha en la que ha sido creado y, así, comprobar cuándo han sido incorporados, ordenarlos por el momento de su creación o agruparlos por meses, semanas o días.

La marca de tiempo es una forma de registrar información temporal adicional a cualquier elemento que estemos manejando. Por ejemplo, las cámaras de fotografía permiten añadir la fecha y hora en el momento de darle al disparador y tomar la foto. También se usa en las oficinas de correos para marcar las cartas y paquetes en el momento de la recepción y la entrega.

En nuestro mundo digital, la marca de tiempo se usa para muchas y variadas actividades. Seguro que te has dado cuenta que en el momento de la creación de un fichero tienes la posibilidad de conocer la fecha de su creación consultando la propiedad correspondiente. Y, además, si se ha modificado su contenido también podrás consultar la propiedad con nombre _"fecha de modificación"_ del mismo. Ambos valores se consideran marcas de tiempo porque registran dos eventos relacionados con el documento, su creación y su última modificación.

El valor de la marca de tiempo debe ser __consistente__ en su formato para poder hacer comparaciones entre sus valores. En algunos casos, la fecha será lo único que merezca la pena guardar mientras que en casos más específicos podríamos necesitar la fecha y hora incluidos los milisegundos. Pero esto depende del diseño de nuestra aplicación y los requisitos indicados.

Las marcas de tiempo se utilizan en sistemas de log para conocer el momento exacto en el que se generó la traza. También se utiliza en bases de datos para registrar el momento de creación de un registro y cuándo se modificó por última vez e, incluso, la fecha en la que ha dejado de ser útil o se borró de forma lógica. Otro uso muy común se da en los sistemas de gestión de código fuente como Git: cada _"commit"_ registra su fecha y hora. Por último, se utiliza en la tecnología _"blockchain"_ para establecer el momento de generación de cada bloque.

__Incorporar una marca de tiempo a tu aplicación__

Vamos ahora con un ejemplo y cómo se utilizan las marcas de tiempo en la realidad. Imagina que necesitamos registrar la fecha y hora en la que recibimos una petición a cualquier método de nuestra API. Los datos que tendremos que guardar serán los siguientes:

```JavaScript
let log_data = {
	endpoint: '', // URL de nuestro método
	verb: '', // ['GET', 'POST', 'PUT', 'HEAD', 'DELETE', ...]
	created: new Date().toISOString(), // la marca de tiempo que registra cuando se invocó el método
	// otros datos necesarios
};
```

En este código, la propiedad _"created"_ mantiene la fecha en la que se invocó el método de la API. Si volcamos esta información a un fichero local seremos capaces de seguir la línea temporal y ver los métodos que se han invocando en el tiempo.

Si quieres saber más información sobre el formato de las marcas de tiempo te recomiendo que leas información acerca de cómo representar fechas y horas en base a lo establecido en la [ISO 8601][ISO].

__Resumiendo__

Las marcas de tiempo permiten establecer una fecha y hora para los eventos que suceden alrededor de los datos: creación, modificación, borrado, etc. Son una forma sencilla de realizar seguimientos sobre los datos y poder analizar el histórico de estos.

__Feedback__

Si te ha gustado este artículo no olvides clicar en el corazón o el unicornio y compartirlo con tus amigos y compañeros. Déjame tus comentarios en la parte inferior sobre lo que te ha gustado o como mejorar y si quieres que escriba acerca de otros temas mándame un mensaje directo a mi cuenta de [twitter][Twitter].

__Créditos__

La imagen de cabecera procede de [Unsplash] y es cortesía de [Jonathan Cosens Photography](https://unsplash.com/@jcosens)


[Wikipedia]: https://en.wikipedia.org/wiki/Timestamp "Marca temporal"
[ISO]: https://www.iso.org/iso-8601-date-and-time-format.html "ISO 8601"
[Unsplash]: https://unsplash.com/ "Unsplash"
[Twitter]: https://twitter.com/BugsCoding
[Dashboard]: https://dev.to/codbugs "Dashboard"