Quiero establecer la fecha de creación de algunas imágenes escaneadas antiguas en una fecha de 1970. Si lo hago usando una herramienta de terceros, el Explorador de Windows muestra la fecha en blanco. Pensé que NTFS podría remontarse al siglo XVII en algún momento. ¿Qué está pasando?
Respuesta1
Análisis rápido
Al explorar carpetas, el Explorador de Windows no mostrará fechas fuera de un rango específico:
El formato de fecha de MS-DOS sólo puede representar fechas entre el 1/1/1980 y el 31/12/2107.
Esto se puede confirmar configurando manualmente la fecha:
Mi suposición es que este comportamiento está relacionado con la compatibilidad con versiones anteriores. CuandoNTFSno existía, las fechas de creación, modificación y acceso fueron diseñadas para ocupar 16 bits cada una (2 bytes). La información se empaqueta así:
Bits | Description
-------------------------------------------------------
0–4 | Day (1-31)
5–8 | Month (1 = January, 2 = February, etc.)
9-15 | Year offset from 1980 (0 = 1980, 1 = 1981, etc.)
Para ahorrar bits, el año no se almacena como un número entero; en su lugar se utiliza un desplazamiento. Como hay 7 bits, eso significa 2^7 = 128
valores posibles, es decir, 1980-2107.
En cuanto a NTFS, esto es lo que dice la documentación:
Atiempo de archivoes un valor de 64 bits que representa el número de intervalos de 100 nanosegundos que han transcurrido desde las 00:00 a. m. del 1 de enero de 1601, hora universal coordinada (UTC). El sistema registra los tiempos de los archivos cuando las aplicaciones crean, acceden y escriben en archivos.
El sistema de archivos NTFS almacena los valores de hora en formato UTC, por lo que no se ven afectados por los cambios de zona horaria o el horario de verano. El sistema de archivos FAT almacena valores de tiempo basados en la hora local de la computadora.
Fuente:Tiempos de archivo
Otras lecturas
Solución alterna
En ciertos casos, es posible que pueda evitar este problema a través deEXIFetiquetas:
El cuadro de diálogo de propiedades del archivo puede mostrar cualquier fecha admitida por el sistema de archivos subyacente:
Lo mismo ocurre con la interfaz de línea de comandos cuando se utiliza el dir
comando:
01/01/1601 02:23 AM 0 1-oldest.txt
01/01/1970 02:23 AM 0 2-older.txt
01/01/1980 02:23 AM 0 3-old.txt
01/01/2014 02:23 AM 0 4-current.txt
01/01/2107 02:23 AM 0 5-new.txt
01/01/9999 02:23 AM 0 6-newer.txt
Programas de terceros como7 cremallerasTambién podría no verse afectado: