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
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private TimeUtils()
      Private constructor to prevent instantiation of this utility class.
    • Method Summary

      All Methods Static Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      static boolean isUnixTime​(long seconds)
      Deprecated.
      Use FileTimes.isUnixTime(long)
      static boolean isUnixTime​(java.nio.file.attribute.FileTime time)
      Deprecated.
      use FileTimes.isUnixTime(FileTime)
      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)
      Deprecated.
      Use FileTimes.toNtfsTime(long)
      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)
      Deprecated.
      Use FileTimes.fromUnixTime(long)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • HUNDRED_NANOS_PER_MILLISECOND

        static final long HUNDRED_NANOS_PER_MILLISECOND
        The amount of 100-nanosecond intervals in one millisecond.
      • WINDOWS_EPOCH_OFFSET

        static final long WINDOWS_EPOCH_OFFSET
        Windows File Times

        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). This is the offset of Windows time 0 to UNIX epoch in 100-nanosecond intervals.

        See Also:
        Constant Field Values
    • Constructor Detail

      • TimeUtils

        private TimeUtils()
        Private constructor to prevent instantiation of this utility class.
    • Method Detail

      • isUnixTime

        @Deprecated
        public static boolean isUnixTime​(java.nio.file.attribute.FileTime time)
        Deprecated.
        use FileTimes.isUnixTime(FileTime)
        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

        @Deprecated
        public static boolean isUnixTime​(long seconds)
        Deprecated.
        Use FileTimes.isUnixTime(long)
        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

        @Deprecated
        public static long toNtfsTime​(long javaTime)
        Deprecated.
        Use FileTimes.toNtfsTime(long)
        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

        @Deprecated
        public static java.nio.file.attribute.FileTime unixTimeToFileTime​(long time)
        Deprecated.
        Use FileTimes.fromUnixTime(long)
        Converts standard UNIX time (in seconds, UTC/GMT) to FileTime.
        Parameters:
        time - UNIX timestamp (in seconds, UTC/GMT).
        Returns:
        the corresponding FileTime.