Tue Jan 7 19:39:37 MST 2020 Let’s talk about today than shall we? I’d like to think it would be a nice moment in time if we could simply get along with everything that happens in this life, yet I doubt it will. It’s a shame if you think about it. A real shame. But what are you going to do with any of it? No one knows exactly. So here we sit waiting for something better to come along, hoping for something to happen and allowing us to actually see what is real and what isn’t.
Sometimes you want to be able to change the created date of a file. Don't ask me WHY you would ever need to do this, but well here's a way in Java.
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.FileTime;
import java.time.*;
public class ChangeCreatedDate {
public static void main(String[] args) throws IOException {
if (args.length == 2) {
File file = new File(args[0]);
if (file.exists()) {
file.setLastModified(System.currentTimeMillis());
} else {
file.createNewFile();
}
}
LocalDate date = LocalDate.parse(args[1]);
LocalTime time = LocalTime.now();
Path file = Paths.get(args[0]);
FileTime fileTime = FileTime.fromMillis(getMillisecondsSince1970(date, time));
Files.setAttribute(file, "creationTime", fileTime);
}
public static long getMillisecondsSince1970(LocalDate date, LocalTime time) {
ZonedDateTime zonedDateTime = ZonedDateTime.of(
date,
time,
ZoneId.systemDefault());
return zonedDateTime.toInstant().toEpochMilli();
}
}
Looking back at it, I wonder why I didn't make it so you could update the time as well as the date. Interesting. I mean it would make sense to be able to update both the date AND time. But I didn't have that in this section of code. Oh well, I'm sure I'll change it someday.
I find it interesting that we're updating an attribute of the file. One would think it would be someplace else, or easier to access directly on the file object itself. But well, it's not. So that's just that.
Comments
Post a Comment