2015-06-18 52 views
9

我需要將格式爲3d, 02:05:45的格式轉換爲秒。通過以下功能,我可以將它轉換爲3.02:05:45。我不知道如何將其轉換爲我想要的格式。請幫忙。將秒轉換爲天,hh:mm:ss C#

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

u能在toString方法用 「\」 UR字符前加烏爾願望字符==> t.ToString(@「d \ d \ ,hh \:mm \:ss「) –

+0

你能舉個例子嗎?你是否意味着這個返回t.ToString(@「%。,hh:mm:ss」)? – Ramya

+0

That worked @Leon_SFS :) – Ramya

回答

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

Other Characters部分中Custom TimeSpan Format Strings

任何其他非轉義字符,包括 空白字符被解釋爲自定義格式說明符。在大多數情況下,任何其他非轉義字符的存在都會導致FormatException異常。

兩種方式包括在格式字符串文字字符:

  • 括在單引號(文字字符串分隔符)。

  • 在其前面加上反斜線(「\」),它被解釋爲轉義字符。這意味着在C#中,格式字符串必須是 或者是@引用的,或者文字字符必須在前面加上 附加的反斜槓。

1

https://msdn.microsoft.com/en-us/library/ee372287.aspx

不限[其他]未轉義字符的格式字符串,包括一個 空白字符,被解釋爲自定義格式說明。在大多數情況下,任何其他非轉義字符的存在都會導致FormatException異常。有兩種方法可以包括文字字符 格式字符串:

  • 括在單引號(文字 字符串分隔符)。
  • 在其前面加上反斜槓(「\」),即 將其解釋爲轉義字符。這意味着在C#中,格式 字符串必須是@引用的,或者文字字符必須是 ,後面加上反斜槓。
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"); 
0
return t.ToString(@"d\d\, hh\:mm\:ss") 
相關問題