Um objeto Date pode ser criado usando o número de milissegundos desde a época de um FileTime.
Date newDate = new Date( filetime.toMillis() );
Este exemplo cria uma data chamada firstDate, nenhum parâmetro é passado para o construtor, desta forma o valor usado é a data e hora atuais. Essa data é convertida em um FileTime usando o método fromMillis do objeto FileTime. O segundo objeto Date é criado passando o número de milissegundos do FileTime desde a época no construtor. Os três valores são então escritos na saída, mostrando que são idênticos. Um teste final verifica se os valores são os mesmos e, em seguida, formatamos a Data usando SimpleDateFormat. O valor legível humano é então escrito na saída.
import java.nio.file.attribute.FileTime; import java.text.SimpleDateFormat; import java.util.Date; public class FileTimeDate { public static void main(String[] argv) { Date firstDate = new Date(); FileTime time = FileTime.fromMillis( firstDate.getTime() ); Date newDate = new Date( time.toMillis() ); System.out.println("firstDate milliseconds:\t" + firstDate.getTime() ); System.out.println("FileTime milliseconds:\t" + time.toMillis() ); System.out.println("newDate milliseconds:\t" + newDate.getTime() ); if( time.toMillis() == firstDate.getTime() && newDate.getTime() == time.toMillis()){ String pattern = "yyyy-MM-dd HH:mm:ss"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); System.out.println("All the Dates are equal: " + simpleDateFormat.format( firstDate ) ); } } }
firstDate milliseconds: 1525827617236
FileTime milliseconds: 1525827617236
newDate milliseconds: 1525827617236
All the Dates are equal: 2018-05-08 18:00:17
O objeto FileTime é imutável, ele não é alterado depois de criado. Isso garante que o valor não seja alterado ao usar este objeto. O objeto Date não é thread-safe.