Datetime Coldfusion计算帐户过期

Datetime Coldfusion计算帐户过期,datetime,coldfusion,active-directory,Datetime,Coldfusion,Active Directory,我正在尝试使用Active Directory中的accountExpires属性获取所有已过期的帐户 由于属性类型是Int8(64位整数),而coldfusion不支持这么长的整数,因此我很难让它正常工作 是否有一个函数或某种类型,我可以用来实现上述目标 谢谢 Java中的64位整数是一个整数。long隐含在ColdFusion中 accountExpires表示自1601年1月1日起的100纳秒间隔数。显示了如何获取windows文件时间到目前为止: 希望这能有所帮助。您好,谢谢您的回复。我

我正在尝试使用Active Directory中的accountExpires属性获取所有已过期的帐户

由于属性类型是Int8(64位整数),而coldfusion不支持这么长的整数,因此我很难让它正常工作

是否有一个函数或某种类型,我可以用来实现上述目标


谢谢

Java中的64位整数是一个整数。long隐含在ColdFusion中

accountExpires
表示自1601年1月1日起的100纳秒间隔数。显示了如何获取windows文件时间到目前为止:


希望这能有所帮助。

您好,谢谢您的回复。我尝试了
我得到了错误:INIT找不到要调用的适当构造函数,请使用javacast指定参数类型。但是当我尝试时:
没问题。有什么想法吗(适用于我。CF 9,0,1274733。有时coldfusion可能会与重载的java方法混淆。因此,请尝试将您的参数包装在java cast
中。我现在正在运行CF5。我非常确定我以前尝试过javacast,但我会在周一再次检查确定,出于某种原因,CFLDAP无法检索accountExpires属性。相同的f或者所有其他Int8属性。知道如何使其工作吗?:(我不担心-但是这是一个不同的问题,所以我建议您将其作为一个单独的问题发布。但一旦您发现cfldap不工作的原因-至少您现在知道如何在CF中使用windows文件时间!
long diff1601to1970 = 315532800 * 1000000000; // <-- diff in nanoseconds(1/1/1601 to 1/1/1970)
long currentFrom1970 =  System.currentTimeMillis() * 1000000;
long currentFrom1601 = diff1601to1970 + currentFrom1970;
accountExpiresFileTime = 129407978957060010;
date = createObject("java", "java.util.Date").init(
    (accountExpiresFileTime-116444736000000000)/10000
);