Я ожидаю установить файл zip-записи creationTime
и lastModifedTime
другое время.
код:
static class Data {
String filename;
byte[] body;
}
private static void createZipExample(List<Data> dataList, File out) throws IOException {
ZonedDateTime now = LocalDateTime.now().atZone(ZoneId.systemDefault());
try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(out))) {
byte[] buffer = new byte[1024];
for (Data data : dataList) {
final byte[] bytes = data.body;
try (InputStream in = new ByteArrayInputStream(bytes)) {
ZipEntry entry = new ZipEntry(data.filename);
// How set other time to creationTime & lastModifiedTime?
entry.setCreationTime(FileTime.from(now.minusYears(1).toInstant()));
entry.setLastModifiedTime(FileTime.from(now.minusYears(2).toInstant()));
zos.putNextEntry(entry);
int len;
while ((len = in.read(buffer)) > 0) zos.write(buffer, 0, len);
}
}
zos.closeEntry();
}
}
Но я распаковываю выходной zip-файл и проверяю информацию, затем creationTime
то же самое, что и modifiedTime
(now.minusYears(2)
).
Почему?