如何解决C#DateTime计算和ToString
| 我随时间进行简单的计算,以查看进程已运行了多长时间。(DateTime.Now - StrtTime).ToString(\"hh:mm:ss\")
其中StrtTime为:DateTime StrtTime = DateTime.Now;
。但是我得到一个例外:
Input string was not in a correct format.
正确的方法是什么?
解决方法
一个
DateTime
减去另一个another得到a4ѭ值,而不是另一个DateTime
。 TimeSpan
不支持您给定的格式字符串。
有关标准的“ 4”格式字符串,请参见此处和此处的自定义格式。
但是,要测量处理时间,您应该改用更适合该任务的工具ѭ8。
Stopwatch watch = new Stopwatch();
watch.Start();
DoSomeProcess();
watch.Stop();
TimeSpan processTime = watch.Elapsed;
,正如其他人提到的那样,您可能想使用StopWatch
。但是,在您的特定情况下,您会收到错误消息,因为在使用带有11号字符的格式化字符串时需要转义\“:\”。尝试这个:
(DateTime.Now - StrtTime).ToString(@\"hh\\:mm\\:ss\")
,尝试使用
Stopwatch stpWatch1 = new Stopwatch();
stpWatch1.Start();
.............
stpWatch1.Stop();
TimeSpan ts = stpWatch1.Elapsed;// it also contains stpWatch1.ElapsedMilliseconds
,正如安东尼提到的,秒表将更适合此任务。不过,要回答您的问题,您可以按以下格式设置日期:
String.Format(\"{0:hh:mm:ss}\",(DateTime.Now - StrtTime).ToString());
,使用秒表类。
Stopwatch sw = new Stopwatch();
sw.Start();
//code
sw.Stop();
sw.Elapsed.ToString();
,正如Anthony所说,相减得出TimeSpan
。
TimeSpan
接受其他格式:
TimeSpan.ToString方法(字符串)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。