Olá, pessoal.
Estou aprendendo a usar as classes BasicFileAttributes e BasicFileAttributeView, estou tentando modificar o data da ultima modificacao de um arquivo, no entanto, quando faço a alteração o horario aparece adiantado 3 horas, segue o codigo:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributeView;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.FileTime;
import java.util.Date;
import java.util.TimeZone;
public class BasicAttribute {
public static void main(String[] args) {
Path arquivo = Paths.get("contas.csv");
try {
BasicFileAttributes atributos = Files.readAttributes(arquivo, BasicFileAttributes.class);
System.out.println("Criação: " + atributos.creationTime());
System.out.println("Acesso: " + atributos.lastAccessTime());
System.out.println("Modificacao: " + atributos.lastModifiedTime());
BasicFileAttributeView modificando = Files.getFileAttributeView(arquivo, BasicFileAttributeView.class);
FileTime dataCriacao = atributos.creationTime();
FileTime dataAcesso = atributos.lastAccessTime();
Date data = new Date();
FileTime dataModificacao = FileTime.fromMillis(data.getTime());
TimeZone fuso = TimeZone.getDefault();
System.out.println("fuso: " + fuso);
System.out.println("Horario: " + dataModificacao);
System.out.println("Horario Atual: " + data);
modificando.setTimes(dataModificacao, dataAcesso, dataCriacao);
System.out.println("------------------------------------------------");
System.out.println("Criação: " + atributos.creationTime());
System.out.println("Acesso: " + atributos.lastAccessTime());
System.out.println("Modificacao: " + atributos.lastModifiedTime());
} catch (IOException e) {
e.printStackTrace();
}
}
}
Percebi que o problema ocorre neste momento:
Date data = new Date();
FileTime dataModificacao = FileTime.fromMillis(data.getTime());
System.out.println("Horario: " + dataModificacao); //Aqui exibe com 3 horas a mais
System.out.println("Horario Atual: " + data); //Aqui exibe o horario correto
Não sei o que fazer para que o arquivo apareça com o data correta, se alguem puder me ajudar…