加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

用于处理win32 FILETIME的Java库?

发布时间:2020-12-14 02:02:50 所属栏目:Windows 来源:网络整理
导读:是否有任何 Java库来处理win32 FILETIME/时间间隔? 从1601年1月1日开始,它基本上是100ns间隔的64位时间戳. (对于我的特殊需求,转换为/从java.util.Date转换或适当的joda时间相当于,但我需要访问至少微秒的分辨率 – 这似乎都没有提供.) 解决方法 如果你的毫
是否有任何 Java库来处理win32 FILETIME/时间间隔?
从1601年1月1日开始,它基本上是100ns间隔的64位时间戳.

(对于我的特殊需求,转换为/从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对象非常简单.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读