是否可以在.NET中将系统时间设置为正确的服务器时间?我有一个测试用例搞乱了系统时间,我想在测试用例的拆解中恢复它。 是否可以通过编程方式恢复正确的时间(例如从服务器)?
注意:我需要将其用于单元测试和验收测试。注入假时间不适用于后者。
答案 0 :(得分:3)
这是设置时间(一旦你知道):
Change system date programmatically
如果您想从有效来源获取时间,可能本讨论中的答案可能对您有所帮助: How to Query an NTP Server using C#?
答案 1 :(得分:1)
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();
}
}