Como mudar a data e hora de um arquivo usando Java utilizando IO

Esse exemplo mostra como mudar/atualizar data e hora de um arquivo. Isso é realizado através da classe FileUtils, qual é parte da biblioteca Apache Commons IO.

Podemos obter a verdadeira hora do arquivo utilizandoa classe core java.io.File e chamando seu método lastModified() que retorna a hora como um long.

O valor é o número de milisegundos contados desde 01/01/1970. Para atualizar a hora nos usamos o método estático touch() da classe FileUtils que pode abrir e fechar o arquivo sem modificá-lo, porém atualiza a hora e data do arquivo.

Note que se o arquivo que estamos tentando atualizar a hora não existe, ele será criado através da execução do método touch().

O exemplo obtém a timestamp para um certo arquivo, chama touch e obtém o timestamp novamente, assim como imprime quando o segundo timestamp foi maior que o primeiro.

package com.javadb.examples;

import java.io.IOException;
import org.apache.commons.io.FileUtils;

import java.io.File;

/**
 *
 * @author www.javadb.com
 */
public class Main {

    public static void main(String[] args) {
        try {
            File file = new File("pic.jpg");
            long lastModified1 = file.lastModified();
            FileUtils.touch(file);
            long lastModified2 = file.lastModified();
            System.out.println("File date / time was updated: " + (lastModified2 > lastModified1));
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}