我正在编写一个需要确定文件/目录上次修改时间的程序。我想使用 Joda Time 来处理这个时间,并且我正在使用 Java 7 NIO.2 类Files来获取文件的最后修改时间。它的getLastModifiedTime()方法返回一个FileTime类的实例,该实例具有方便的方法toMillis(),我将其结果传递给 Joda TimeDateTime类构造函数:
new DateTime(Files.getLastModifiedTime(path).toMillis());
但是,我觉得我做错了,因为DateTime(long)构造函数明确提到该DateTime实例将使用默认时区创建。FileTime但是,文档没有在任何地方提及其时区。我查看了FileTime代码;它似乎很简单,它的toString()方法表明它正在使用 UTC 时区(它Calendar在 UTC 时区中创建一个并直接设置它的毫秒数)。
那么,FileTime使用UTC还是当地时间?FileTime转换为的正确方法是DateTime什么?