是否有任何 Java 库可以处理 win32 FILETIME/时间间隔 ? 它基本上是自 1601 年 1 月 1 日以来以 100ns 为间隔的 64 位时间戳。
(对于我的特殊需要,转换为 java.util.Date 或从 java.util.Date 或相应的 joda 时间等价物就可以了,尽管我需要访问至少微秒的分辨率——这两者似乎都没有提供。)
最佳答案
如果您对毫秒分辨率没问题,这会起作用:
/** Difference between Filetime epoch and Unix epoch (in ms). */
private static final long FILETIME_EPOCH_DIFF = 11644473600000L;
/** One millisecond expressed in units of 100s of nanoseconds. */
private static final long FILETIME_ONE_MILLISECOND = 10 * 1000;
public static long filetimeToMillis(final long filetime) {
return (filetime / FILETIME_ONE_MILLISECOND) - FILETIME_EPOCH_DIFF;
}
public static long millisToFiletime(final long millis) {
return (millis + FILETIME_EPOCH_DIFF) * FILETIME_ONE_MILLISECOND;
}
此时,从 ms 转换为 Date 对象非常简单。
关于用于处理 win32 FILETIME 的 Java 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5398557/