广告帐户过期设置问题
Ad accountexpires setting issue
此代码在控制台程序中工作正常
DateTime enteredDate = DateTime.Parse("2/2/2019 1:16:47 PM");
//change the time to 6pm
enteredDate = enteredDate.Date.Add(new TimeSpan(18, 00, 0));
Debug.WriteLine($"Entered date : {enteredDate}");
Debug.WriteLine($"FromFileTime: DateTime.FromFileTime(enteredDate.ToFileTime())}");
输出是
Entered date : 2/2/2019 6:00:00 PM
FromFileTime: 2/2/2019 6:00:00 PM
当我为这样的 AD 属性设置这个时间时
directoryEntry.Properties["accountExpires"].Value = Convert.ToString(enteredDate .ToFileTime());
它将时间部分写为 12:00:00 下午而不是下午 6 点。我究竟做错了什么 ?
我假设这是一个时区问题,而您处于 UTC+6 时区。
我不认为你有任何问题。 accountExpires
attribute stores the time as a number that "represents the number of 100-nanosecond intervals since January 1, 1601 (UTC)". That's exactly what ToFileTime()
适合你。你做对了。
但请注意,它是以 UTC 格式存储的。如果您将其视为 12:00 下午,那可能是因为您将其读取为 UTC 时间。
下午 6:00 你的时间是 12:00 下午 UTC
此代码在控制台程序中工作正常
DateTime enteredDate = DateTime.Parse("2/2/2019 1:16:47 PM");
//change the time to 6pm
enteredDate = enteredDate.Date.Add(new TimeSpan(18, 00, 0));
Debug.WriteLine($"Entered date : {enteredDate}");
Debug.WriteLine($"FromFileTime: DateTime.FromFileTime(enteredDate.ToFileTime())}");
输出是
Entered date : 2/2/2019 6:00:00 PM
FromFileTime: 2/2/2019 6:00:00 PM
当我为这样的 AD 属性设置这个时间时
directoryEntry.Properties["accountExpires"].Value = Convert.ToString(enteredDate .ToFileTime());
它将时间部分写为 12:00:00 下午而不是下午 6 点。我究竟做错了什么 ?
我假设这是一个时区问题,而您处于 UTC+6 时区。
我不认为你有任何问题。 accountExpires
attribute stores the time as a number that "represents the number of 100-nanosecond intervals since January 1, 1601 (UTC)". That's exactly what ToFileTime()
适合你。你做对了。
但请注意,它是以 UTC 格式存储的。如果您将其视为 12:00 下午,那可能是因为您将其读取为 UTC 时间。
下午 6:00 你的时间是 12:00 下午 UTC