¿Por qué los rangos de fechas en informática comienzan en períodos antiguos?

¿Por qué los rangos de fechas en informática comienzan en períodos antiguos?

Leer elArtículo de Wikipedia para HFS+, Noté que el rango de fechas permitido es del 1 de enero de 1904 al 6 de febrero de 2040. Asimismo, elrango para NTFSes del 1 de enero de 1601 al 28 de mayo de 60056. En mi opinión, es ridículo pensar en esto, ya que no puedo pensar en ningún caso en el que un archivo deba tener una fecha de modificación/creación establecida en los años 1600 o 1900. Puedo entender la época de la marca de tiempo de Unix, ya que sería razonable crear/modificar un archivo en los años 70, 80, etc., pero parece ilógico que la época de esas marcas de tiempo se establezca tan atrás en el pasado.

Respuesta1

No es sólo NTFS; El cronometraje interno de Windows se realiza utilizando el mismo formato de hora y con el mismo inicio de época.

Sabían que querían un valor de tiempo binario de 64 bits, porque ya se sabía que el valor original de 32 bits de Unix era un callejón sin salida (esos contadores terminarán en 2038), y los valores de tiempo de 64 bits ya se habían utilizado en VMS. 64 bits permiten calcular alrededor de 18 mil millones de billones de valores de tiempo diferentes. Bueno, en realidad, sólo 9 mil millones de millones porque los valores de tiempo con el bit alto configurado tienen un significado diferente en Windows (como lo tienen en VMS). Así que realmente tenemos "sólo" 63 bits para contar la fecha y la hora del día.

Mientras que el tiempo de Unix de 32 bits sólo contaba segundos, las marcas de tiempo de Windows cuentan en incrementos de 100 nanosegundos. Entonces, un valor de tiempo de 1 significa 100 ns después de la medianoche del 1 de enero de 1601.

Pero ¿por qué elegir una fecha tan "histórica"?

Bueno, primero, facilita un poco los cálculos del día de la semana y similares, ya que ese fue el primer año del primer ciclo de 400 años que incluía computadoras electrónicas de cualquier tipo. hay algunosapoyo muy autorizadopor esta razón.

Sin embargo, debo opinar que en el contexto de la informática moderna, la potencia de cálculo adicional necesaria para hacer frente a un año de inicio diferente sería bastante pequeña en contexto.

El 1 de enero de 1601 también es la fecha a partir de la cual se cuentan las fechas ANSI. Entonces, la "fecha de Windows" es el mismo número de día que la "fecha ANSI", lo que facilita un poco las cosas en varios lugares.

También se ha estandarizado como "año 1" del calendario gregoriano (aunque ese calendario no se adoptó en todas partes en ese momento).

Sin embargo, por una razón práctica y de trabajo, considere: Este formato de fecha/hora permite representar fechas/horas históricas, por ejemplo, en bases de datos junto con las actuales, utilizando el mismo formato. Una base de datos genealógica, por ejemplo, puede almacenar las fechas de nacimiento y muerte de sus antepasados ​​que se remontan a más de 400 años, lo cual es mucho más tiempo que el que la mayoría de registros de este tipo existen en forma confiable.

No habría tenido sentido extender esto antes, a partir, digamos, del año 1201 o incluso del año 1, debido a la transición del calendario juliano a gregoriano que comenzó en algunos países en 1582 y continuó hasta 1926, dependiendo del país al que se aplicara. estaban en. Todas las fechas registradas en formato de hora ANSI y, por extensión, en formato de hora "binario" de Windows se supone que son calendario gregoriano.

Por cierto, VMS utiliza un esquema similar pero su hora base es el 17 de noviembre de 1858. Este fue un estándar elegido por el Observatorio Astrofísico Smithsonian como "fecha base" para el seguimiento de satélites; esto estaba relacionado con el uso anterior por parte de los astrónomos del esquema original del día juliano, que cuenta los días desde el mediodía del 1 de enero de 4713 a. C. En este esquema, el 17 de noviembre de 1858 resulta en el día juliano modificado número 2.400.000. Al utilizar el MJD en lugar del JD, pudieron encajar fechas contemporáneas en sólo 18 bits, lo cual fue una hazaña importante en ese momento. VerEste artículode VMS Engineering para más detalles.

Respuesta2

Cuando se examina de forma aislada, el amplio rango de marcas de tiempo de NTFS puede parecer ilógico. Pero cuando miras el panorama general, es completamente lógico.

Una de las cosas que hace un sistema operativo es proporcionar un conjunto de funciones que la mayoría de los programas necesitarán. Esto permite a los programadores concentrarse en sus programas en lugar de perder tiempo reescribiendo estas funciones comunes para cada programa. Es poco probable que cualquier sistema operativo que no proporcione estas funciones tenga éxito. Windows y Linux proporcionan cientos de funciones de este tipo.

Windows incluye una serie de funciones para representar y trabajar con fechas y horas. Para una máxima utilidad, esto cubre una gama de fechas tan amplia como sea razonablemente posible. Muchos programas utilizan estas funciones para una amplia variedad de propósitos.

El sistema de archivos NTFS se lanzó como parte de la plataforma NT. Como cualquier sistema de archivos moderno, necesitaba alguna forma de almacenar marcas de fecha de archivos. Lógicamente los diseñadores optaron por utilizar el mismo sistema que el previsto para las aplicaciones. Esto simplifica las cosas para los desarrolladores. Por supuesto, el rango de fechas es mucho más amplio que el necesario para los sellos de fecha, pero no cuesta nada y no causa problemas. Habría sido ilógico utilizar un sistema diferente con un rango de fechas más restringido para los sellos fechadores.

Respuesta3

Las fechas (y su especificación de formato a nivel de bits) no sólo se utilizan para etiquetar archivos, sino también para cálculos y en muchos otros lugares. Un historiador podría querer tener fechas del siglo XVII o XVIII en sus columnas de Excel, por ejemplo; o un astrónomo calcula las alineaciones planetarias en estos períodos.

Incluso si la cantidad de personas que lo utilizan es pequeña, la pérdida es negligente; no importa mucho si puedes usar este formato durante 100, 5000 o 60000 años; probablemente no sobrevivirá los próximos 50 años.

información relacionada