我想将 LDAP AccountExpires 中的 18 位数字字符串转换为正常日期时间格式。
129508380000000000 >> 2011年5月26日
我通过使用以下链接获得了上述转换。
http://www.chrisnowell.com/information_security_tools/date_converter/Windows_active_directory_date_converter.asp?pwdLastSet、%20accountExpires、%20lastLogonTimestamp、%20lastLogon、%20and%20badPasswordTime http://www.chrisnowell.com/information_security_tools/date_converter/Windows_active_directory_date_converter.asp?pwdLastSet,%20accountExpires,%20lastLogonTimestamp,%20lastLogon,%20and%20badPasswordTime
我尝试使用 DateTime.Parse 或 Convert.ToDateTime 进行转换。但没有成功。
有人知道如何转换吗?非常感谢。
编辑后的答案
根据 UTC,这是自 1601 年 1 月 1 日以来的刻度数参考 http://www.rlmueller.net/AccountExpires.htm,描述了1601年的意义。很好的背景阅读。
var accountExpires = 129508380000000000;
var dt = new DateTime(1601, 01, 01, 0, 0, 0, DateTimeKind.Utc).AddTicks(accountExpires);
原始接受答案
这是自 1601 年 1 月 2 日以来的刻度数。
DateTime dt = new DateTime(1601, 01, 02).AddTicks(129508380000000000);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)