Class TimeUtils


  • public final class TimeUtils
    extends java.lang.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 Detail

      • isUnixTime

        public static boolean isUnixTime​(java.nio.file.attribute.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 java.util.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 java.nio.file.attribute.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:
        FileTimes.toNtfsTime(FileTime)
      • toDate

        @Deprecated
        public static java.util.Date toDate​(java.nio.file.attribute.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:
        FileTimes.toFileTime(Date)
      • toFileTime

        @Deprecated
        public static java.nio.file.attribute.FileTime toFileTime​(java.util.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:
        FileTimes.toDate(FileTime)
      • toNtfsTime

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

        @Deprecated
        public static long toNtfsTime​(java.nio.file.attribute.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:
        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​(java.nio.file.attribute.FileTime fileTime)
        Converts FileTime to standard UNIX time.
        Parameters:
        fileTime - the original FileTime.
        Returns:
        the UNIX timestamp.
      • truncateToHundredNanos

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

        public static java.nio.file.attribute.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.