datetime - Coldfusion 计算帐户过期

标签 datetime coldfusion active-directory

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

由于属性类型是 Int8(64 位整数)并且 Coldfusion 不支持这么长的整数,所以我很难让它工作。

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

谢谢!

最佳答案

Java 中的 64 位整数是 java.lang.Long 。多头隐含 converted to Integers在冷聚变中。

accountExpireswindows 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
);

希望有帮助。

关于datetime - Coldfusion 计算帐户过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8517178/

相关文章:

active-directory - LDAP 查询查找具有多个父级的所有组

java - 如何在java中验证这个时间/日期字符串?

xml - coldfusion + xml 根据日期获取节点

javascript - 如何创建和组织 JavaScript 数组?

javascript - 为什么我的 JSON 无效,即使它看起来正确?

azure - 如何使用 Graph API 在 Azure Active Directory 上创建用户(工作帐户)

sql-server - SQL Server : convert datetime in place in table

python - 值错误 : time data '%Y-%m-%d %H:%M:%S' does not match format '2012-11-14 14:32:30'

Javascript 日期工作奇怪

c# - 用户欺骗域名