我正在尝试使用Active Directory中的accountExpires属性获取所有已过期的帐户。
由于属性类型是Int8(64位整数)而coldfusion不支持这样的长整数,所以我很难让它工作。
我可以使用某种功能或某种功能来实现上述目标吗?
谢谢!
答案 0 :(得分:3)
Java中的64位整数是java.lang.Long。在ColdFusion中,Longs隐含converted to Integers。
accountExpires
是一个windows file time structure,表示自1601年1月1日以来100纳秒间隔的数量。This thread显示了我们如何获取Windows文件的最新时间:
long diff1601to1970 = 315532800 * 1000000000; // <-- diff in nanoseconds(1/1/1601 to 1/1/1970) long currentFrom1970 = System.currentTimeMillis() * 1000000; long currentFrom1601 = diff1601to1970 + currentFrom1970;
这允许我们在ColdFusion中执行以下操作:
accountExpiresFileTime = 129407978957060010;
date = createObject("java", "java.util.Date").init(
(accountExpiresFileTime-116444736000000000)/10000
);
希望这有帮助。