Análise rápida

Análise rápida

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.

Fonte:Função FileTimeToDosDateTime

Isto pode ser confirmado definindo manualmente a data:

Captura de tela 1

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 = 128valores 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:

Captura de tela 2

A caixa de diálogo de propriedades do arquivo pode exibir qualquer data suportada pelo sistema de arquivos subjacente:

Captura de tela 3

O mesmo acontece com a interface de linha de comando ao usar o dircomando:

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:

Captura de tela 4

informação relacionada