使用C#的系统运行时间不正确

时间:2016-01-08 12:47:48

标签: c# .net datetime timespan

我有以下代码:

        private void button1_Click(object sender, EventArgs e)
        {
            DateTime dtime = DateTime.MinValue.Add(UpTime);
            string result = dtime.ToString(@"dd:hh\:mm\:ss");
            textBox1.Text = Convert.ToString(result);
        }

        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());
                }
            }
        }
    }
}

我的问题是我的系统启动时间是4天3小时22分钟。

但应用程序显示更多1天。即5天......

我怎样才能使它正确?

1 个答案:

答案 0 :(得分:4)

DateTime.MinValue值为01/01/0001 00:00:00。因此,将此值添加4天3小时22分钟,结果将为05/01/0001 03:22:00

由于您将 值格式化,因此正常而无法将05作为日期部分。

您可以直接UpTime属性格式化为TimeSpan,而不是那样。

var f = new Form1();
textBox1.Text = f.UpTime.ToString(@"dd\.hh\:mm\:ss", CultureInfo.InvariantCulture);