【发布时间】:2012-06-12 01:47:37
【问题描述】:
我正在编写一个根据特定时间选择图像的程序。我将每个图像的名称以及它的最后修改时间存储在一个目录中以引用每个图像。但是,在存储每个图像的最后修改日期时,由于某种原因,它似乎落后了一个小时。这意味着将选择一小时后的图像。
System.out.println(listOfFiles[i].getName());
originalImageNames.add(listOfFiles[i].getAbsolutePath());
date = listOfFiles[i].lastModified();
Date fDate = new Date(date);
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm");
String dateString = sdf.format(fDate);
System.out.println(dateString);
originalImageDates.add(dateString);
正在打印正确的图像名称,但该图像的最后修改时间是 10:29。然而,打印和存储的图像日期是 09:29。
【问题讨论】:
-
你在暑假吗?时间正在从系统中取出,因此除非您的时钟延迟,否则它不应该发生
-
是的,我的系统已针对夏令时进行了调整。
-
我刚刚通过专门选择图像并解析其上次修改时间进行检查,如下所示,当通过资源管理器检查时,它仍然会导致实际上次修改时间前一小时。我不知道为什么。有什么办法可以在解析时间上增加一个小时?
-
试试这个格式,看看 tz 是否符合你的期望:
"dd-MM-yyyy HH:mm, zzzz" -
看起来 windows 和 java 在您的管辖范围内有不同的夏令时规则。其中一个可能已经过时了吗?
标签: java date time last-modified