2013-03-10 15 views
5
TimeSpan Ts = new TimeSpan(5, 4, 3, 2); 
return Ts.ToString("?"); 

Jaki wyraz należy wymienić ze znakiem zapytania, aby uzyskać ten format: : 5d 4h: 3M: 2s?TimeSpan.ToString() ciąg zwrotny jak (D: hh: mm: ss)

+0

można wykonaj to za pomocą kodu i formatu 'TimeSpan Ts = new TimeSpan (5, 4, 3, 2); var RetValue = string.Format ("{0} d: {1} h: {2} m: {3} s", Ts.Days, Ts.Hours, Ts.Milliseconds, Ts.Seconds); ' – MethodMan

Odpowiedz

11
TimeSpan timeSpan = new TimeSpan(5, 4, 3, 2); 
string str = timeSpan.ToString(@"d\d\:h\h\:m\m\:s\s", System.Globalization.CultureInfo.InvariantCulture); 

Zobacz Custom TimeSpan Format Strings na temat formatowania TimeSpan s.

Chociaż należy zauważyć, że ujemne TimeSpan s nie można odróżnić od pozytywnych. Wyglądają, jakby były negated. W związku z tym -new TimeSpan(5,4,3,2) będzie nadal wyświetlany jako 5d:4h:3m:2s. Jeśli chcesz wyświetlać liczby ujemne, powinieneś sformatować własne liczby, korzystając z właściwości TimeSpan.

+0

nie ma potrzeby ucieczki od wszystkich znaków twojego ciągu formatów. Escaping \. i \: wystarcza. –

+0

Mosh chciał, aby części zostały naprawione wraz z odpowiadającymi im częściami, tak aby jego użycie było wymagane. Jeśli chcesz po prostu '12: 34: 45', to unikanie nie jest wymagane. – Caramiriel

+0

Masz rację. Przepraszam. Nie przeczytałem tego pytania od samego początku. –

2

Można tego dokonać za pomocą aktualnego kodu

TimeSpan Ts = new TimeSpan(5, 4, 3, 2); 
var RetValue = string.Format("{0}d:{1}h:{2}m:{3}s", 
    Ts.Days, 
    Ts.Hours, 
    Ts.Minutes, 
    Ts.Seconds); 

daje to jako sformatowany wyniku "5d:4h:0m:2s"

Powiązane problemy