Active DirectoryからLDAPで取得した日時情報をいつものDateTimeに変換

More than 1 year has passed since last update.

ActiveDirectoryからnet/ldapのようなライブラリを利用して取得した日時情報はWindowsのFILETIMEを基準にした値らしいです。

MSDNの情報によると、

1601 年 1 月 1 日 1 時以降の 100 ナノ秒間隔の数値

面倒ですが、ちゃちゃっとRubyのDateTimeに変換しましょう。

t = DateTime.new(1601, 1, 1) + user[:pwdlastset][0].to_i / 864_000_000_000.0

参考: LDAP & Active Directory Timestamp Converter
http://www.epochconverter.com/epoch/ldap-timestamp.php