我需要以3d, 02:05:45
格式转换秒数。使用以下功能,我可以将其转换为3.02:05:45
。我不确定如何将其转换为我想要的格式。请帮忙。
private string ConvertSecondsToDate(string seconds)
{
TimeSpan t = TimeSpan.FromSeconds(Convert.ToDouble(seconds));
if (t.Days > 0)
return t.ToString(@"d\.hh\:mm\:ss");
return t.ToString(@"hh\:mm\:ss");
}
如果我尝试执行此类操作,请返回t.ToString(@"%d , hh\:mm\:ss")
我收到错误,
输入字符串的格式不正确。
答案 0 :(得分:8)
如果我理解正确,您可以d
字符和\
之类的其他空格;
if (t.Days > 0)
return t.ToString(@"d\d\,\ hh\:mm\:ss");
或
if (t.Days > 0)
return t.ToString(@"d'd, 'hh\:mm\:ss");
结果将格式化为3d, 02:05:45
格式字符串中的任何其他未转义字符,包括a 空格字符,被解释为自定义格式说明符。在 在大多数情况下,任何其他未转义字符的存在都会导致a 出现FormatException。
两种方式在格式字符串中包含文字字符:
将其用单引号括起来(文字字符串分隔符)。
在前面加上反斜杠(“\”),它被解释为转义字符。这意味着,在C#中,格式字符串必须 要么是@ -quoted,要么文字字符必须以a开头 额外的反斜杠。
答案 1 :(得分:1)
https://msdn.microsoft.com/en-us/library/ee372287.aspx
格式字符串中的任何[其他]未转义字符,包括 空格字符,被解释为自定义格式说明符。在 在大多数情况下,任何其他未转义字符的存在都会导致a 出现FormatException。有两种方法可以包含文字字符 格式字符串:
- 用单引号括起来(字面值 字符串分隔符)。
- 用反斜杠(" \")作为前缀 被解释为转义字符。这意味着,在C#中,格式 string必须是@ -quoted,或者必须是文字字符 之前是一个额外的反斜杠。
private string ConvertSecondsToDate(string seconds)
{
TimeSpan t = TimeSpan.FromSeconds(Convert.ToDouble(seconds));
if (t.Days > 0)
return t.ToString(@"d\d\,\ hh\:mm\:ss");
return t.ToString(@"hh\:mm\:ss");
}
或者
if (t.Days > 0)
return t.ToString(@"d'd, 'hh':'mm':'ss");
答案 2 :(得分:0)
return t.ToString(@"d\d\, hh\:mm\:ss")