I'm writing a program which needs to determine files/directories last modified time. I want to handle this time using Joda Time, and I'm using Java 7 NIO.2 class Files
to get file last modified time. Its getLastModifiedTime()
method returns an instance of FileTime
class, which has convenient method toMillis()
, whose result I pass to Joda Time DateTime
class constructor:
new DateTime(Files.getLastModifiedTime(path).toMillis());
However, I have a feeling that I'm doing this wrong, since DateTime(long)
constructor explicitly mentions that DateTime
instance will be created with default time zone. FileTime
docs, however, do not mention its time zone anywhere. I looked through FileTime
code; it seems to be very simple, and its toString()
method suggests that it is using UTC time zone (it creates a Calendar
in UTC time zone and sets its milliseconds directly).
So, does FileTime
uses UTC or local time? What is the correct way to convert FileTime
to DateTime
?
DateTime
constructor expected timestamp in local time zone, but, as you said, timestamp is always in UTC. ThenDateTimeZone
argument in anotherDateTime
constructor just defines how this timestamp should be viewed. – Tena