ad的pwdLastSet,微软时间戳转java的date

在ad里面用户的密码最后修改时间是一个long型的。用微软的话说:the number of 100 nanosecond intervals since January 1, 1601 (UTC)

也就是是从1601年1月1日到当前时间的一个100纳秒数。首先这个数去掉后四位,就变成了毫秒数。

但是因为跟java的开始计算时间不一样,所以还不能比较。

java是从1970年1月1日00:00:00开始算。而微软从1601年1月1日00:00:00开始算。

要为这两个时间点中间差多少毫秒。可需要好好算一算,是不是还得算中间有多少闰年啊。

其实不用,只要举一个例子,知道一个具体的时间,直接能算出差值的。

比如现在知道 131596092000000000 是微软时间 2018年1月5日 的15:00:00 

而在java的date里这个日期的毫秒数是:1515135600000

两个的差是 11644473600000。

再有微软的时间,先砍掉后四位,在减去 11644473600000,就可以直接转java日期了。分毫不差。

        Date date  = new Date(13159609200000L);
        Date date2  = new Date(118,0,5,15,0,0);
        System.out.println(date2);
        System.out.println(date2.getTime());
        System.out.println(13159609200000L - date2.getTime());
        System.out.println(new Date(13205468290468L - 11644473600000L));

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值