Package org.apache.commons.compress.utils

# 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 Summary

  Modifier and Type
  Method
  Description
  `static boolean`
  `isUnixTime(long seconds)`
  Tests whether a given number of seconds (since Epoch) can be safely represented in the standard UNIX time.
  `static boolean`
  `isUnixTime(FileTime time)`
  Tests whether a FileTime can be safely represented in the standard UNIX time.
  `static Date`
  `ntfsTimeToDate(long ntfsTime)`
  Deprecated.
  Use `FileTimes.ntfsTimeToDate(long)`.
  `static FileTime`
  `ntfsTimeToFileTime(long ntfsTime)`
  Deprecated.
  Use `FileTimes.ntfsTimeToFileTime(long)`.
  `static Date`
  `toDate(FileTime fileTime)`
  Deprecated.
  Use `FileTimes.toDate(FileTime)`.
  `static FileTime`
  `toFileTime(Date date)`
  Deprecated.
  Use `FileTimes.toFileTime(Date)`.
  `static long`
  `toNtfsTime(long javaTime)`
  Converts Java time (milliseconds since Epoch) to NTFS time.
  `static long`
  `toNtfsTime(FileTime fileTime)`
  Deprecated.
  Use `FileTimes.toNtfsTime(FileTime)`.
  `static long`
  `toNtfsTime(Date date)`
  Deprecated.
  Use `FileTimes.toNtfsTime(Date)`.
  `static long`
  `toUnixTime(FileTime fileTime)`
  Converts `FileTime` to standard UNIX time.
  `static FileTime`
  `truncateToHundredNanos(FileTime fileTime)`
  Truncates a FileTime to 100-nanosecond precision.
  `static FileTime`
  `unixTimeToFileTime(long time)`
  Converts standard UNIX time (in seconds, UTC/GMT) to `FileTime`.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## 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)
    Deprecated.
    Use `FileTimes.ntfsTimeToDate(long)`.
    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)
    Deprecated.
    Use `FileTimes.ntfsTimeToFileTime(long)`.
    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:
      - `FileTimes.toNtfsTime(FileTime)`

  - ### toDate

    @Deprecated public static Date toDate(FileTime fileTime)
    Deprecated.
    Use `FileTimes.toDate(FileTime)`.
    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:
      - `FileTimes.toFileTime(Date)`

  - ### toFileTime

    @Deprecated public static FileTime toFileTime(Date date)
    Deprecated.
    Use `FileTimes.toFileTime(Date)`.
    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:
      - `FileTimes.toDate(FileTime)`

  - ### toNtfsTime

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

  - ### toNtfsTime

    @Deprecated public static long toNtfsTime(FileTime fileTime)
    Deprecated.
    Use `FileTimes.toNtfsTime(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:
      - `FileTimes.ntfsTimeToFileTime(long)`

  - ### 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.