Horario Errado

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…

Observação: Pode haver outra forma de resolver.
Tente da seguinte forma:

public class BasicAttribute {

public static void main(String[] args) {
	Path arquivo = Paths.get("contas.csv");
	
	try {
		Date data = new Date();
            System.out.println("Horario Atual: " + data);
            TimeZone fuso = TimeZone.getDefault();

            System.out.println("Fuso Horário: " + fuso);
            System.out.println("------------------------------------------------");

            BasicFileAttributes atributos = Files.readAttributes(arquivo, BasicFileAttributes.class);

            FileTime dataCriacao = atributos.creationTime();
            FileTime dataAcesso = atributos.lastAccessTime();
            FileTime dataModificacao = atributos.lastModifiedTime();
            
            String pattern = "yyyy-MM-dd HH:mm:ss";
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

            String dataCri = simpleDateFormat.format(new Date(dataCriacao.toMillis()));
            String dataAce = simpleDateFormat.format(new Date(dataAcesso.toMillis()));
            String dataMod = simpleDateFormat.format(new Date(dataModificacao.toMillis()));
            
            System.out.println("Criação: " + dataCri);
            System.out.println("Acesso: " + dataAce);
            System.out.println("Modificacao: " + dataMod);
		
	} catch (IOException e) {
		e.printStackTrace();
	}
}