2016-09-15 74 views
1

我有一個int,我想將其轉換爲特定格式的字符串。將int轉換爲特定格式的字符串

例如, -1至-01:00

這是很容易,如果我有正數(即1至01:00)。我可以使用下面的代碼:

var time = 6; 
var convertTime = "0" + time + ":00"; 

輸出:

06:00 

我不知道如何實現與相同負數。

var time = -6; 
var convertTime = /* what to do here */ + time + ":00"; 

所需的輸出:

-06:00 
+0

'var convertTime =「0」+ time +「:00」'如果時間大於9將產生錯誤的值 –

+0

它永遠不會。基於功能,最大值爲6。雖然好點。 – CSharper

回答

8

只需使用string.Format

int time = -6; 
var convertTime = string.Format("{0:00}:00", time); 

或者,如果你有C#6你可以做一個插線。

var convertTime = $"{time:00}:00"; 
+1

請通過https://msdn.microsoft.com/en-us/library/0c899ak8(v=vs.110).aspx查看格式字符串的選項。 – Jacob

+0

@juharr完美。這是我正在尋找的。 – CSharper

0
var time = (myInt*100).ToString("00:00"); 

或者,如果使用C#6(VS2015):

var input = -6; 
var time = $"{input:00}:00"; 
0
var time = -6; 
var convertTime = (time < 0 ? "-" : String.Empty) + Math.Abs(time).ToString("D2") + ":00"; 
+0

如果你使用'D2'格式化程序,那麼你不需要做絕對的和整個符號檢查,只需'var convertTime = time.ToString(「D2」)+「:00」;' – juharr

0

下面是利用時間跨度的例子。

public void TestTimeSpan() 
{ 
    var ts = new TimeSpan(-1, 0, 0); 
    var s = string.Format("{0}{1:hh\\:mm}", ts < TimeSpan.Zero? "-": string.Empty, ts); 
    Assert.AreEqual("-1:00", s); 
}