C#DateTime计算和ToString

时间:2011-05-25 12:00:15

标签: c# datetime

我随着时间进行简单的计算,看看过程运行了多长时间。

(DateTime.Now - StrtTime).ToString("hh:mm:ss")

StrtTime是:DateTime StrtTime = DateTime.Now; 。但我得到一个例外:

Input string was not in a correct format.

这样做的正确方法是什么?

6 个答案:

答案 0 :(得分:9)

一个DateTime减去另一个会产生TimeSpan值,而不是另一个DateTimeTimeSpan不支持您给定的格式字符串。

对于标准TimeSpan格式字符串,see herehere用于自定义格式。

但是,要衡量处理时间,应该使用更适合任务的工具System.Diagnostics.Stopwatch

Stopwatch watch = new Stopwatch();
watch.Start();

DoSomeProcess();

watch.Stop();
TimeSpan processTime = watch.Elapsed;

答案 1 :(得分:2)

正如其他人所说,您可能想要使用StopWatch。但是在您的特定情况下,您会收到错误,因为在使用带有TimeSpan.ToString的格式化字符串时需要转义“:”。试试这个:

(DateTime.Now - StrtTime).ToString(@"hh\:mm\:ss")

答案 2 :(得分:1)

尝试使用

Stopwatch stpWatch1 = new Stopwatch();
            stpWatch1.Start();
            .............
            stpWatch1.Stop();
TimeSpan ts = stpWatch1.Elapsed;// it also contains stpWatch1.ElapsedMilliseconds

答案 3 :(得分:1)

正如安东尼所说,秒表更适合这项任务。要回答你的问题,你可以像这样格式化日期:

String.Format("{0:hh:mm:ss}", (DateTime.Now - StrtTime).ToString());

答案 4 :(得分:0)

使用秒表课程。

        Stopwatch sw = new Stopwatch();
        sw.Start();

        //code

        sw.Stop();

        sw.Elapsed.ToString();

答案 5 :(得分:0)

正如安东尼所说,减法导致TimeSpan

TimeSpan接受不同的格式:

TimeSpan.ToString Method (String)