tag date time ansi

date - tag - ¿Cuál es el significado del 1 de enero de 1601?



title tag html (4)

Esta estructura es un valor de 64 bits que representa el número
de intervalos de 100 nanosegundos desde el 1 de enero de 1601.

Referencia: http://msdn.microsoft.com/en-us/library/aa915351

¿Por qué se establece "desde 1601"? ¿Por qué no unix time 1970 o incluso 2000? ¿Qué puedo hacer con la compatibilidad de fechas tan distantes en el tiempo?

Respondiendo a mi mismo

La Fecha ANSI define el 1 de enero de 1601 como el día 1 y se utiliza como el origen de las fechas enteras de COBOL. Esta época es el comienzo del ciclo anterior de 400 años de años bisiestos en el calendario gregoriano, que terminó con el año 2000, como se puede encontrar en la Wikipedia en la entrada Julian_day.

Promover:


Como ya se ha mencionado, creo que la respuesta popular es que el calendario gregoriano opera en un ciclo de 400 años, y 1601 es el primer año del ciclo que estaba activo en el momento en que se diseñó Windows NT.

El 1 de enero de 1601 es el origen de las fechas enteras COBOL.

También es el día 1 por formato de fecha ANSI.

Y si especula más de acuerdo con ISO8601, que es el formato en el que se encuentra, antes de 1583 el tiempo se basaba en el proleptico calendario gregoriano que tiene 366 días por año. Quizás acaban de redondear hasta el próximo siglo.


Es una elección pragmática.

El calendario occidental moderno no fue consistente hasta 1752 cuando Gran Bretaña (y sus colonias) adoptaron el calendario gregoriano, que había sido adoptado en la mayor parte de la Europa católica desde 1582.

Este es el calendario moderno con años bisiestos, etc. para mantener el 1 de enero alineado con el solsticio de invierno.

Entonces, ¿por qué no empezar desde el 1 de enero de 1752? Debido a que la regla básica del año bisiesto "Es un año bisiesto si el año de dos dígitos es divisible por cuatro, excepto si el siglo de cuatro dígitos también es divisible por cuatro", estableció un ciclo de 400 años. El primer ciclo completo comienza el 1 de enero de 1601, (al menos en Roma).

Los cálculos del año bisiesto y la fecha son suficientemente dolorosos sin comenzar a la mitad de un ciclo de cuatrocientos años, por lo que 1600 es un buen comienzo, siempre que recuerde que cualquier fecha anterior a 1752 debe ser calificada por una ubicación geográfica, ya que las fechas británicas fueron 10 días fuera de sincronía. Con fechas romanas por esta época.


Porque el 1/1/1601 fue el comienzo de la época.

Tómalo de Raymond Chen:

¿Por qué es la época de Win32 el 1 de enero de 1601?

La estructura de FILETIME registra el tiempo en forma de intervalos de 100 nanosegundos desde el 1 de enero de 1601. ¿Por qué se eligió esa fecha?

El calendario gregoriano opera en un ciclo de 400 años, y 1601 es el primer año del ciclo que estaba activo en el momento en que se diseñó Windows NT. En otras palabras, se eligió para que las matemáticas salieran bien.

De hecho, tengo el correo electrónico de Dave Cutler confirmando esto.


Pues bien, el 1 de enero de 1601 fue el primer día del siglo XVII. Y los relojes de péndulo se inventaron en el siglo XVII, lo que permitió medir el tiempo con una precisión de 1 segundo. Entonces (en teoría) podría haber referencias en la literatura existente de ese período a los puntos de tiempo medidos con esa precisión.

Pero en realidad la elección es arbitraria. Tiene que haber una "época", y siempre

  1. la época está lo suficientemente atrás como para que los valores de "tiempo negativo" sean raros, y

  2. el tiempo de cierre es suficiente en el futuro para estar a unas pocas generaciones de distancia,

cualquier elección servirá.

Pero oye, si te preocupa mucho, envía una carta a Steve Balmer.

Me inclino a creer la respuesta de Ian Boyd. Y la razón es que facilita las matemáticas (para el cálculo del año bisiesto gregoriano). Dado lo pequeña que es esa simplificación y cuán débil es el razonamiento detrás de ella, es (IMO) "esencialmente" arbitraria. (No es que esté diciendo que está mal ...)