Class TimeUtils

java.lang.Object
org.apache.commons.compress.utils.TimeUtils

public final class TimeUtils extends Object
Utility class for handling time-related types and conversions.

Understanding Unix vs NTFS timestamps:

  • A Unix timestamp is a primitive long starting at the Unix Epoch on January 1st, 1970 at Coordinated Universal Time (UTC)
  • An NTFS timestamp is a file time is a 64-bit value that represents the number of 100-nanosecond intervals that have elapsed since 12:00 A.M. January 1, 1601 Coordinated Universal Time (UTC).
Since:
1.23
  • Method Details

    • isUnixTime

      public static boolean isUnixTime(FileTime time)
      Tests whether a FileTime can be safely represented in the standard UNIX time.

      TODO ? If the FileTime is null, this method always returns true.

      Parameters:
      time - the FileTime to evaluate, can be null.
      Returns:
      true if the time exceeds the minimum or maximum UNIX time, false otherwise.
    • isUnixTime

      public static boolean isUnixTime(long seconds)
      Tests whether a given number of seconds (since Epoch) can be safely represented in the standard UNIX time.
      Parameters:
      seconds - the number of seconds (since Epoch) to evaluate.
      Returns:
      true if the time can be represented in the standard UNIX time, false otherwise.
    • ntfsTimeToDate

      @Deprecated public static Date ntfsTimeToDate(long ntfsTime)
      Converts NTFS time (100 nanosecond units since 1 January 1601) to Java time.
      Parameters:
      ntfsTime - the NTFS time in 100 nanosecond units.
      Returns:
      the Date.
    • ntfsTimeToFileTime

      @Deprecated public static FileTime ntfsTimeToFileTime(long ntfsTime)
      Converts NTFS time (100-nanosecond units since 1 January 1601) to a FileTime.
      Parameters:
      ntfsTime - the NTFS time in 100-nanosecond units.
      Returns:
      the FileTime.
      See Also:
    • toDate

      @Deprecated public static Date toDate(FileTime fileTime)
      Deprecated.
      Converts FileTime to a Date. If the provided FileTime is null, the returned Date is also null.
      Parameters:
      fileTime - the file time to be converted.
      Returns:
      a Date which corresponds to the supplied time, or null if the time is null.
      See Also:
    • toFileTime

      @Deprecated public static FileTime toFileTime(Date date)
      Deprecated.
      Converts Date to a FileTime. If the provided Date is null, the returned FileTime is also null.
      Parameters:
      date - the date to be converted.
      Returns:
      a FileTime which corresponds to the supplied date, or null if the date is null.
      See Also:
    • toNtfsTime

      @Deprecated public static long toNtfsTime(Date date)
      Deprecated.
      Converts a Date to NTFS time.
      Parameters:
      date - the Date.
      Returns:
      the NTFS time.
    • toNtfsTime

      @Deprecated public static long toNtfsTime(FileTime fileTime)
      Converts a FileTime to NTFS time (100-nanosecond units since 1 January 1601).
      Parameters:
      fileTime - the FileTime.
      Returns:
      the NTFS time in 100-nanosecond units.
      See Also:
    • toNtfsTime

      public static long toNtfsTime(long javaTime)
      Converts Java time (milliseconds since Epoch) to NTFS time.
      Parameters:
      javaTime - the Java time.
      Returns:
      the NTFS time.
    • toUnixTime

      public static long toUnixTime(FileTime fileTime)
      Converts FileTime to standard UNIX time.
      Parameters:
      fileTime - the original FileTime.
      Returns:
      the UNIX timestamp.
    • truncateToHundredNanos

      public static FileTime truncateToHundredNanos(FileTime fileTime)
      Truncates a FileTime to 100-nanosecond precision.
      Parameters:
      fileTime - the FileTime to be truncated.
      Returns:
      the truncated FileTime.
    • unixTimeToFileTime

      public static FileTime unixTimeToFileTime(long time)
      Converts standard UNIX time (in seconds, UTC/GMT) to FileTime.
      Parameters:
      time - UNIX timestamp (in seconds, UTC/GMT).
      Returns:
      the corresponding FileTime.