C#TimeSpan:如何将格式标识符用作格式字符串中的字符?

时间:2018-06-19 14:00:06

标签: c# .net string formatting timespan

给出了一个简单的TimeSpan值,我该如何使用自定义格式字符串将其格式化为string值,使其显示如下:

1 d. 15:14:32

因为使用这种格式

`d\\ d. hh\\:mm\\:ss`

第二个'd'字符当然会自动转换为Day参数,因此它取代了简单的 d 字符,而被天数代替。

所以我的问题是,是否有一些特殊的转义序列可以让我将这些保留的标识符用作格式字符串中的简单字符?

我已经尝试了几个我知道的转义序列,但是它们都不起作用,因此我不确定是否可以这样做。而且我想避免手动字符串组成,因为我在XAML绑定中使用了这种格式设置模式。

在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您可以使用:

"%d\\ \\d\\.\\ hh\\:mm\\:ss"

@"%d\ \d\.\ hh\:mm\:ss"

或(使用单引号而不是转义符):

"%d' d. 'hh':'mm':'ss"

例如:

Console.WriteLine(new TimeSpan(1, 15, 14, 32).ToString("%d\\ \\d\\.\\ hh\\:mm\\:ss"));
Console.WriteLine(new TimeSpan(1, 15, 14, 32).ToString(@"%d\ \d\.\ hh\:mm\:ss"));
Console.WriteLine(new TimeSpan(1, 15, 14, 32).ToString("%d' d. 'hh':'mm':'ss"));

您最终不得不逃脱几乎所有非内置格式字符的内容,包括空格。

See here for details.