C#TimeSpan:如何将格式标识符用作格式字符串中的字符?
给定一个简单的C#TimeSpan:如何将格式标识符用作格式字符串中的字符?,c#,.net,string,formatting,timespan,C#,.net,String,Formatting,Timespan,给定一个简单的TimeSpan值,如何使用自定义格式字符串将其格式化为string值,使其显示如下: 1 d. 15:14:32 因为使用这种格式时 `d\\ d. hh\\:mm\\:ss` 第二个'd'字符当然会自动转换为Day参数,因此它会被天数取代,而不是简单的d字符 所以我的问题是,是否有一些特殊的转义序列允许我使用这些保留标识符作为格式字符串中的简单字符 我已经尝试了几个我知道的转义序列,但都不起作用,所以我不确定是否可以这样做。我希望避免手动合成字符串,因为我在XAML绑定中使
TimeSpan
值,如何使用自定义格式字符串将其格式化为string
值,使其显示如下:
1 d. 15:14:32
因为使用这种格式时
`d\\ d. hh\\:mm\\:ss`
第二个'd'
字符当然会自动转换为Day
参数,因此它会被天数取代,而不是简单的d字符
所以我的问题是,是否有一些特殊的转义序列允许我使用这些保留标识符作为格式字符串中的简单字符
我已经尝试了几个我知道的转义序列,但都不起作用,所以我不确定是否可以这样做。我希望避免手动合成字符串,因为我在XAML绑定中使用这种格式模式
提前感谢您的帮助 您可以使用:
"%d\\ \\d\\.\\ hh\\:mm\\:ss"
或
或(使用单引号而不是转义符):
e、 g:
您最终不得不转义几乎所有不是内置格式字符的内容,包括空格
@MartinVrábel我漏掉了一个:您还可以将非格式化字符括在单引号中,这可能是最好的方法。我添加了另一个示例。
@"%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"));