Ce face Files.getLastModifiedTime
Files.getLastModifiedTime(cale) dă data și ora la care fișierul a fost modificat ultima dată, ca obiect FileTime. Îl transformi în Instant cu toInstant() sau în milisecunde cu toMillis(). Două valori FileTime se compară cu compareTo.
Perechea Files.setLastModifiedTime(cale, timp) schimbă această dată. Ora este în UTC (afișată cu Z la final); pentru ora României o convertești cu atZone(ZoneId.of("Europe/Bucharest")).
Parametri
| Parametru | Descriere |
|---|---|
cale |
Fișierul verificat. |
optiuni |
Opțional: LinkOption.NOFOLLOW_LINKS. |
Ce returnează
Un FileTime cu momentul ultimei modificări.
Exemple
Exemplul 1: Citirea și schimbarea datei modificării
Setăm o dată fixă, ca rezultatul să fie același la fiecare rulare, apoi o citim înapoi.
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.FileTime;
import java.time.Instant;
import java.time.ZoneId;
public class Main {
public static void main(String[] args) throws IOException {
Path cale = Files.writeString(Path.of("contract.txt"), "Contract de închiriere");
Files.setLastModifiedTime(cale, FileTime.from(Instant.parse("2026-03-15T10:30:00Z")));
FileTime t = Files.getLastModifiedTime(cale);
System.out.println("UTC: " + t);
System.out.println("România: " + t.toInstant().atZone(ZoneId.of("Europe/Bucharest")).toLocalDateTime());
}
}
Rezultat
UTC: 2026-03-15T10:30:00Z
România: 2026-03-15T12:30
Exemplul 2: Care copie este mai nouă?
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.FileTime;
import java.time.Instant;
public class Main {
public static void main(String[] args) throws IOException {
Path laptop = Files.writeString(Path.of("lucrare-laptop.docx"), "v1");
Path stick = Files.writeString(Path.of("lucrare-stick.docx"), "v2");
Files.setLastModifiedTime(laptop, FileTime.from(Instant.parse("2026-05-10T08:00:00Z")));
Files.setLastModifiedTime(stick, FileTime.from(Instant.parse("2026-05-12T19:45:00Z")));
FileTime a = Files.getLastModifiedTime(laptop);
FileTime b = Files.getLastModifiedTime(stick);
Path maiNou = a.compareTo(b) >= 0 ? laptop : stick;
System.out.println("Versiunea mai nouă: " + maiNou);
}
}
Rezultat
Versiunea mai nouă: lucrare-stick.docx
Greșeli frecvente
- Compari două
FileTimecu<sau==: nu compilează sau compară referințe. FoloseștecompareTosauequals. - Afișezi ora și o iei drept ora locală.
FileTime.toString()este în UTC.
Comenzi înrudite
Files.size: Returnează mărimea unui fișier în octeți (bytes); literele cu diacritice ocupă câte doi octeți în UTF-8.Instant: Un moment exact pe axa timpului, în UTC, măsurat în secunde și nanosecunde de la 1 ianuarie 1970.ZoneId: Identifică un fus orar (Europe/Bucharest) cu regulile lui de oră de vară; of îl alege, systemDefault dă fusul sistemului.Files: Clasa cu metode statice pentru lucrul cu fișiere și foldere: citire, scriere, copiere, mutare, ștergere, listare.