广告accountexpires设置问题

问题描述 投票:0回答:1

此代码在控制台程序工作正常

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

当我设置此时间这样的广告属性

directoryEntry.Properties["accountExpires"].Value = Convert.ToString(enteredDate .ToFileTime());

它写的时候一部分12:00:00 PM,而不是下午6:00。我究竟做错了什么 ?

c# active-directory azure-active-directory utc filetime
1个回答
1
投票

我想这是一个时区的问题,你是在UTC + 6时区。

我不认为你有问题的。所述accountExpires属性存储了“表示自1601年1月1,(UTC)的100毫微秒的时间间隔的数目”的时间为一个数字。这正是ToFileTime()为你做。你这样做是正确的。

但是请注意,它被存储在UTC。如果你把它看作12:00 PM,这可能是因为你正在阅读它作为UTC时间。

6:00 PM你的时间是下午12:00 UTC

© www.soinside.com 2019 - 2024. All rights reserved.