Skip to content

Commit 6813e57

Browse files
committed
Add FileTimes.fromUnixTime(long)
For Commons Compress
1 parent 6a94260 commit 6813e57

3 files changed

Lines changed: 20 additions & 0 deletions

File tree

src/changes/changes.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ The <action> type attribute can be add,update,fix,remove.
8585
<action dev="ggregory" type="add" issue="IO-826" due-to="markslater, Gary Gregory">Add BrokenWriter.BrokenWriter(Throwable).</action>
8686
<action dev="ggregory" type="add" due-to="Gary Gregory">Add BoundedInputStream.getRemaining().</action>
8787
<action dev="ggregory" type="add" due-to="Gary Gregory">Add FileTimes.toNtfsTime(long).</action>
88+
<action dev="ggregory" type="add" due-to="Gary Gregory">Add FileTimes.fromUnixTime(long).</action>
8889
<!-- UPDATE -->
8990
<action dev="ggregory" type="fix" due-to="Gary Gregory">Bump commons.bytebuddy.version from 1.14.10 to 1.14.11 #534.</action>
9091
</release>

src/main/java/org/apache/commons/io/file/attribute/FileTimes.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,17 @@ public final class FileTimes {
6161
*/
6262
static final long HUNDRED_NANOS_PER_MILLISECOND = TimeUnit.MILLISECONDS.toNanos(1) / 100;
6363

64+
/**
65+
* Converts standard UNIX time (in seconds, UTC/GMT) to {@link FileTime}.
66+
*
67+
* @param time UNIX timestamp (seconds).
68+
* @return the corresponding FileTime.
69+
* @since 2.16.0
70+
*/
71+
public static FileTime fromUnixTime(final long time) {
72+
return FileTime.from(time, TimeUnit.SECONDS);
73+
}
74+
6475
/**
6576
* Subtracts milliseconds from a source FileTime.
6677
*

src/test/java/org/apache/commons/io/file/attribute/FileTimesTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.nio.file.attribute.FileTime;
2424
import java.time.Instant;
2525
import java.util.Date;
26+
import java.util.concurrent.TimeUnit;
2627
import java.util.stream.Stream;
2728

2829
import org.junit.jupiter.api.Test;
@@ -116,6 +117,13 @@ public void testFileTimeToNtfsTime(final String instant, final long ntfsTime) {
116117

117118
//
118119

120+
@ParameterizedTest
121+
@MethodSource("dateToNtfsProvider")
122+
public void testFromUnixTime(final String instant, final long ntfsTime) {
123+
final long epochSecond = Instant.parse(instant).getEpochSecond();
124+
assertEquals(epochSecond, FileTimes.fromUnixTime(epochSecond).to(TimeUnit.SECONDS));
125+
}
126+
119127
@Test
120128
public void testMinusMillis() {
121129
final int millis = 2;

0 commit comments

Comments
 (0)