Monday, 26 August 2013

Java 7 NIO.2 Files.getLastModifiedTime time zone

Java 7 NIO.2 Files.getLastModifiedTime time zone

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?

No comments:

Post a Comment