2014-10-14 4 views
0

"hhhh : mm : ss.ff"형식의 TimeSpan 개체에서 문자열을 만들고 싶습니다.Zero-Padding TimeSpan.ToString (String)

나는 다음을 사용할 때, 나는 FormatException을 얻을 ...

private const string MAX_TIME_ALLOWED_FORMAT = @"hhhh\:mm\:ss.ff"; 

String myDurationSring = TimeSpan.FromSeconds(myDurationInSeconds).ToString(MAX_TIME_ALLOWED_FORMAT) : string.Empty; 

내 형식 문자열이 몇 가지 작업이 필요하거나이 할 수있는 더 좋은 방법이 있습니까?

+0

D 스탠리의 대답은 내가 갈하지만 예외의 원인이 있었는지하는 것이입니다 줄 것입니다 : 나는 개별적인 TimeSpan의 구성 요소를 취하는 형식 문자열을 사용하십시오 형식 문자열에서 - 앞에 "\"가 있어야합니다. – TheEvilPenguin

+0

@TheEvilPenguin 올바른 형식 문자열이 아니기 때문에 예외가 발생해도 수정됩니다. –

+0

@DStanley Ahh, 나는 또한 그것을 테스트했을 때 나는 처음 두 개의 h를 제거한다는 것을 잊었다. – TheEvilPenguin

답변

7

TimeSpan.ToStringcustom format string를 지원하지 않습니다 그 총 시간을 보여줍니다 - 그것은 단지 23

의 최대 값을 갖는 시간 부분를 표시 할 수 있습니다 "."

String myDurationSring = 
    string.Format("{0:0000}:{1:00}:{2:00}.{3:00}", 
        (int)(ts.TotalHours), 
        ts.Minutes, 
        ts.Seconds, 
        ts.Milliseconds/10.0); 
+0

감사합니다. – whargrove

-1

시도 : 형식 문자열로

"hhhh:mm:ss.ff" 

. 콜론을 피하려고하는 것 같아요. 너는 필요 없어. 당신은 출력 시도에 콜론이 필요한 경우 :

"hhhh\\:mm\\:ss.ff" 
+1

'TimeSpan'은 구분 기호가 문자열 리터럴로 포함되어야하므로 필요한 이스케이프 문자가 필요합니다. –

관련 문제