本文共 767 字,大约阅读时间需要 2 分钟。
在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));
转载地址:http://yrnmi.baihongyu.com/