我正在编写一个需要确定文件/目录上次修改时间的程序。我想使用 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
什么?