是否可以在 .NET 中将系统时间设置为正确的服务器时间?我有一个弄乱系统时间的测试用例,我想在测试用例的拆解中恢复它。是否可以以编程方式恢复正确的时间(例如从服务器)?
注意:单元测试和验收测试都需要这个。注入假时间不适用于后者。
是否可以在 .NET 中将系统时间设置为正确的服务器时间?我有一个弄乱系统时间的测试用例,我想在测试用例的拆解中恢复它。是否可以以编程方式恢复正确的时间(例如从服务器)?
注意:单元测试和验收测试都需要这个。注入假时间不适用于后者。
这是设置时间(一旦你知道了):
如果您的意思是从有效来源获取时间,那么本讨论中的答案可能会对您有所帮助: How to Query an NTP Server using C#?
void setDate(string dateInYourSystemFormat)
{
var proc = new System.Diagnostics.ProcessStartInfo();
proc.UseShellExecute = true;
proc.WorkingDirectory = @"C:\Windows\System32";
proc.CreateNoWindow = true;
proc.FileName = @"C:\Windows\System32\cmd.exe";
proc.Verb = "runas";
proc.Arguments = "/C date " + dateInYourSystemFormat;
try
{
System.Diagnostics.Process.Start(proc);
}
catch
{
MessageBox.Show("Error to change time of your system");
Application.ExitThread();
}
}
void setTime(string timeInYourSystemFormat)
{
var proc = new System.Diagnostics.ProcessStartInfo();
proc.UseShellExecute = true;
proc.WorkingDirectory = @"C:\Windows\System32";
proc.CreateNoWindow = true;
proc.FileName = @"C:\Windows\System32\cmd.exe";
proc.Verb = "runas";
proc.Arguments = "/C time " + timeInYourSystemFormat;
try
{
System.Diagnostics.Process.Start(proc);
}
catch
{
MessageBox.Show("Error to change time of your system");
Application.ExitThread();
}
}