DateTime.ToString格式

时间:2015-02-28 20:35:03

标签: c# datetime .net-4.0

我在单行代码上遇到问题;(

TBCurrent.Text = DateTime.Now.Subtract(Current).ToString("HH:mm:ss");

这会在计时器勾选时触发。我已经尝试过以下格式:

"HH\:mm\:ss"
"HH':'mm':'ss"
"HH\":\"mm\":\"ss"

如果我只放“mm”或“ss”,它就有效,但甚至不是“HH mm ss”。

你以前遇到过这样的错误吗?或者这是.NET版本(4.0)相关吗?

谢谢你, 迈克尔

2 个答案:

答案 0 :(得分:3)

那是TimeSpan formatting (see link),而不是DateTime。试试"hh':'mm':'ss"

通常认为TimeSpan格式与DateTime格式相同是错误的。在.NET 4.0之前,您无法格式化TimeSpan

对于DateTime,有两种方法可以写出时间20:508:50 PM"H"提供20"h"提供8。使用TimeSpan时,不存在这种差异,您必须始终使用小写h

答案 1 :(得分:1)

此格式似乎可以获得您想要的输出

TBCurrent.Text = DateTime.Now.Subtract(Current).ToString(@"hh\:mm\:ss");

您需要将反斜杠放在冒号之前,因为Subtract方法返回TimeSpan而不是DateTime,而TimeSpan具有Custom Format String的不同规则。并且不要忘记@ verbatim来逃避反斜杠