Quero definir a data de criação em algumas imagens digitalizadas antigas para uma data em 1970. Se eu fizer isso usando uma ferramenta de terceiros, o Windows Explorer exibirá a data em branco. Achei que o NTFS poderia voltar aos anos 1600 em algum momento. O que está acontecendo?
Responder1
Análise rápida
Ao navegar nas pastas, o Windows Explorer não exibirá datas fora de um intervalo específico:
O formato de data do MS-DOS pode representar apenas datas entre 01/01/1980 e 31/12/2107.
Isto pode ser confirmado definindo manualmente a data:
Minha suposição é que esse comportamento está relacionado à compatibilidade com versões anteriores. QuandoNTFSnão existia, as datas de criação, modificação e acesso foram projetadas para ocupar 16 bits cada (2 bytes). As informações são compactadas assim:
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 economizar bits, o ano não é armazenado como um número inteiro; um deslocamento é usado em seu lugar. Como existem 7 bits, isso significa 2^7 = 128
valores possíveis, ou seja, 1980-2107.
Quanto ao NTFS, é o que diz a documentação:
Ahora do arquivoé um valor de 64 bits que representa o número de intervalos de 100 nanossegundos decorridos desde 12h de 1º de janeiro de 1601, Tempo Universal Coordenado (UTC). O sistema registra os horários dos arquivos quando os aplicativos criam, acessam e gravam nos arquivos.
O sistema de arquivos NTFS armazena valores de hora no formato UTC, para que não sejam afetados por alterações no fuso horário ou no horário de verão. O sistema de arquivos FAT armazena valores de hora com base na hora local do computador.
Fonte:Tempos de arquivo
Leitura adicional
Gambiarra
Em certos casos, você poderá contornar esse problema atravésEXIFTag:
A caixa de diálogo de propriedades do arquivo pode exibir qualquer data suportada pelo sistema de arquivos subjacente:
O mesmo acontece com a interface de linha de comando ao usar o 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 terceiros, como7-Ziptambém pode não ser afetado: