我使用以下代码获取有关Active Directory中用户的信息:
SearchResultCollection searchResults = null;
string activeDirFilter = getActiveDirFilter();
DirectoryEntry dirEntry = new DirectoryEntry();
DirectorySearcher searcher = new DirectorySearcher(dirEntry)
{
PageSize = 100,
Filter = activeDirFilter,
SearchScope = SearchScope.Subtree
};
此代码工作正常,我正在获取这些属性:
LASTLOGON
130388757393977187
PWDLASTSET
130378422326246669
LASTLOGONTIMESTAMP
130380275331980403
然而,我无法弄清楚价值,是否有人知道如何将这些数字解码为时间戳?
修改: 这个值不能是纪元以来的秒数,因为130388757393977187秒= 4 131 858.64千年。
它也不能是刻度,因为130388757393977187 = 413年。
答案 0 :(得分:1)
您目前拥有Unix Timestamp
,您应将其转换为DateTime对象并打印出来。
public static DateTime UnixTimeStampToDateTime(double unixTimeStamp)
{
// Unix timestamp is seconds past epoch
System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc);
dtDateTime = dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime();
return dtDateTime;
}
答案 1 :(得分:1)
我解决了这个问题:
您需要使用
long x = 130388757393977187;
DateTime dateTime = DateTime.FromFileTimeUtc(x);