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 Summary

      All Methods Static Methods Concrete Methods Deprecated Methods 
      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​(java.nio.file.attribute.FileTime time)
      Tests whether a FileTime can be safely represented in the standard UNIX time.
      static java.util.Date ntfsTimeToDate​(long ntfsTime)
      Deprecated.
      Use FileTimes.ntfsTimeToDate(long).
      static java.nio.file.attribute.FileTime ntfsTimeToFileTime​(long ntfsTime)
      Deprecated.
      Use FileTimes.ntfsTimeToFileTime(long).
      static java.util.Date toDate​(java.nio.file.attribute.FileTime fileTime)
      Deprecated.
      Use FileTimes.toDate(FileTime).
      static java.nio.file.attribute.FileTime toFileTime​(java.util.Date date)
      Deprecated.
      Use FileTimes.toFileTime(Date).
      static long toNtfsTime​(long javaTime)
      Converts Java time (milliseconds since Epoch) to NTFS time.
      static long toNtfsTime​(java.nio.file.attribute.FileTime fileTime)
      Deprecated.
      Use FileTimes.toNtfsTime(FileTime).
      static long toNtfsTime​(java.util.Date date)
      Deprecated.
      Use FileTimes.toNtfsTime(Date).
      static long toUnixTime​(java.nio.file.attribute.FileTime fileTime)
      Converts FileTime to standard UNIX time.
      static java.nio.file.attribute.FileTime truncateToHundredNanos​(java.nio.file.attribute.FileTime fileTime)
      Truncates a FileTime to 100-nanosecond precision.
      static java.nio.file.attribute.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 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)
        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 java.nio.file.attribute.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 java.util.Date toDate​(java.nio.file.attribute.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 java.nio.file.attribute.FileTime toFileTime​(java.util.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​(java.util.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​(java.nio.file.attribute.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​(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.