获取AD用户锁定帐户的时间后,我使用以下代码:
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, result.SamAccountName);
string = user.AccountLockoutTime.Value.ToString("yyyy-MM-dd HH:mm");
然而,停摆的时间似乎已经过了两个小时。怎么了?它是时区相关的,还是AD服务器上的时间错了?
答案 0 :(得分:3)
来自remarks section of the MSDN documentation on the AccountLockoutTime
property:
与System.DirectoryServices.AccountManagement中的所有DateTime属性一样,返回的时间是UTC格式。要将其转换为本地时间,请在返回对象上调用ToLocalTime方法。
使用
user.AccountLockoutTime.Value.ToLocalTime().ToString("yyyy-MM-dd HH:mm");
以当地时区获取日期和时间。