Ich schreibe ein Programm, das Dateien/Verzeichnisse zuletzt geänderte Zeit bestimmen muss. Ich möchte diese Zeit mit Joda Time behandeln, und ich benutze Java 7 NIO.2 Klasse Files
, um die letzte Zeit der Datei zu erhalten. Seine getLastModifiedTime()
Methode gibt eine Instanz von FileTime
-Klasse, die toMillis()
bequeme Methode hat, deren Ergebnis gebe ich zu Joda Zeit DateTime
Klassenkonstruktors:Java 7 NIO.2 Files.getLastModifiedTime Zeitzone
new DateTime(Files.getLastModifiedTime(path).toMillis());
jedoch
, habe ich das Gefühl, dass ich das falsch mache, da DateTime(long)
Konstruktor erwähnt explizit, dass DateTime
Instanz mit Standardzeitzone erstellt wird. FileTime
Docs jedoch nicht seine Zeitzone nirgendwo erwähnen. Ich schaute durch FileTime
Code; es scheint sehr einfach zu sein, und seine toString()
Methode schlägt vor, dass es UTC-Zeitzone verwendet (es erstellt ein Calendar
in UTC-Zeitzone und legt seine Millisekunden direkt fest).
Verwendet also FileTime
UTC oder lokale Zeit? Was ist der korrekte Weg, um FileTime
in DateTime
zu konvertieren?
Danke, jetzt verstehe ich. Aus irgendeinem Grund dachte ich, dass der 'DateTime'-Konstruktor den Zeitstempel in der lokalen Zeitzone erwartet, aber wie Sie bereits sagten, ist der Zeitstempel immer in UTC. Das 'DateTimeZone'-Argument in einem anderen' DateTime'-Konstruktor definiert nur, wie dieser Zeitstempel angezeigt werden soll. –