显示持续时间,以毫秒为单位

fn2*_*n27 12 c# c#-4.0

我想在网页上显示持续时间,以毫秒为单位.到目前为止,我已经做到了这一点:我设法显示在标签上的输出:0时02分50秒,但我想显示毫秒为好,这样的结果应该是这样的00:02:50:000.我该如何实现这一目标?

代码背后:

protected void Page_Load(object sender, EventArgs e)
{
    DateTime startTime = DateTime.Now;
    // sleep for 2.5s
    Thread.Sleep(2500);
    DateTime stopTime = DateTime.Now;
    TimeSpan duration = stopTime - startTime;
    Result.Text = duration.ToString("mm':'ss':'ff");
}
Run Code Online (Sandbox Code Playgroud)

jam*_*wis 24

首先,如果你正在计时,我建议使用StopWatch类,因为它就是它的用途.您可以在System.Diagnostics命名空间中找到它:System.Diagnostics.Stopwatch.

您可以实例化一个新的并使用一行代码开始测量经过的时间量:var stop = System.Diagnostics.Stopwatch.StartNew();然后使用stop方法停止计时器:stop.Stop();.然后,您可以使用Elapsed属性返回已用时间var elapsed = stop.Elapsed;.

然后,为了显示经过的时间(以毫秒为单位),您将使用正确的参数在经过的时间跨度上调用ToString方法.

所以将所有代码放在一起看起来像这样:

protected void Page_Load(object sender, EventArgs e)
{
    var timer = System.Diagnostics.Stopwatch.StartNew();
    // sleep for 2.5s
    Thread.Sleep(2500);
    timer.Stop();
    var elapsed = timer.Elapsed;
    Result.Text = elapsed.ToString("mm':'ss':'fff");
}
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!

詹姆士


Can*_*ide 5

医生说:“FFF”为您提供:

日期和时间值中的毫秒数。

您正在使用“ff”,它为您提供:

日期和时间值中的百分之一秒。

因此,将您的代码更改为:

duration.ToString("mm':'ss':'fff");
Run Code Online (Sandbox Code Playgroud)


rav*_*ned 5

您当前的代码应该显示分钟,秒和百分之一秒

Result.Text = duration.ToString("mm':'ss':'ff");
Run Code Online (Sandbox Code Playgroud)

要显示千分之一秒而不是百分之一秒:

// output: 00:02:500
Result.Text = duration.ToString("mm':'ss':'fff");
Run Code Online (Sandbox Code Playgroud)

请参阅自定义日期和时间格式字符串的文档。