8

可能重复:
显示构建日期
如何知道 Windows 何时启动或关闭?

出于我的目的,我正在编写一个 C# 可执行文件,它将计算现在时间和服务器上次重新启动时间的时间差(分钟)。

我现在正在做的是捕获和解析来自 cmd -> "net stats server" 的输出并创建一个新DateTime对象,然后将其DateTime.Now与一个TimeSpan对象进行比较。

有没有更简洁的方法可以在不使用 3rd 方下载的情况下做到这一点?我担心并非“网络统计服务器”中的所有日期格式都符合我的预期。

**编辑我的错误,这是重复的,但值得我的解决方案是使用这个:

float ticks = System.Environment.TickCount;
Console.WriteLine("Time Difference (minutes): " + ticks / 1000 / 60);
Console.WriteLine("Time Difference (hours): " + ticks / 1000 / 60 / 60);
Console.WriteLine("Time Difference (days): " + ticks / 1000 / 60 / 60 / 24);
4

2 回答 2

11

这个答案应该对您有所帮助。如果您想知道系统上次重新启动的时间,只需获取正常运行时间值并从当前日期/时间中减去它

来自链接答案的代码

public TimeSpan UpTime {
    get {
        using (var uptime = new PerformanceCounter("System", "System Up Time")) {
            uptime.NextValue();       //Call this an extra time before reading its value
            return TimeSpan.FromSeconds(uptime.NextValue());
        }
    }
}
于 2012-07-19T14:13:09.193 回答
1

您可以使用其中的 WMI 使用 powsershell 执行此操作

$wmi = Get-WmiObject -Class Win32_OperatingSystem -Computer "RemoteMachineName"
$wmi.ConvertToDateTime($wmi.LastBootUpTime)

像这样的东西...

如果您决定采用这条路线并想了解更多关于使用 WMI 的 powershell 的信息,这是一个非常有用的链接http://www.powershellpro.com/powershell-tutorial-introduction/powershell-wmi-methods/

于 2012-07-19T14:12:33.250 回答