2015-06-18 16 views
9

Devo convertire i secondi nel formato 3d, 02:05:45. Con la funzione qui sotto potrei convertirlo in 3.02:05:45. Non sono sicuro di come convertirlo nel formato che volevo. Per favore aiuto.Conversione dei secondi in giorni, 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"); 

} 

Se provo a fare qualcosa di simile ritorno t.ToString(@"%d , hh\:mm\:ss") Sto ottenendo un errore,

stringa di input non è nel formato corretto.

+0

u possibile aggiungere ur carattere desiderio nel metodo toString con "\" prima ur carattere ==> t.ToString (@ "d \ d \ , hh \: mm \: ss ") –

+0

puoi fare un esempio? Intendi questo ritorno t.ToString (@ "%., Hh: mm: ss")? – Ramya

+0

Che ha funzionato @Leon_SFS :) – Ramya

risposta

8

Se ho capito bene, si può espace d carattere e lo spazio bianco supplementare con \ simili;

if (t.Days > 0) 
    return t.ToString(@"d\d\,\ hh\:mm\:ss"); 

o

if (t.Days > 0) 
    return t.ToString(@"d'd, 'hh\:mm\:ss"); 

risultato verrà formattato come 3d, 02:05:45

Da Other Characters sezione Custom TimeSpan Format Strings

Qualsiasi altro carattere di escape in una stringa di formato, tra cui un carattere spazio vuoto, viene interpretato come un identificatore di formato personalizzato. Nella maggior parte dei casi in , la presenza di qualsiasi altro carattere senza caratteri di escape produce un valore FormatException .

Ci sono due modi per includere un carattere letterale in una stringa di formato:

  • racchiuderlo tra virgolette singole (il delimitatore di stringa letterale).

  • Preceduto da una barra rovesciata ("\"), che viene interpretata come un carattere di escape. Ciò significa che, in C#, la stringa di formato deve essere o essere quotata a @ oppure il carattere letterale deve essere preceduto da una barra rovesciata aggiuntiva .

1

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

qualsiasi [altra] carattere di escape in una stringa di formato, tra cui un personaggio bianco-spazio, viene interpretato come un formato personalizzato identificatore. Nella maggior parte dei casi in , la presenza di qualsiasi altro carattere senza caratteri di escape produce un valore FormatException . Ci sono due modi per includere un carattere letterale in una stringa di formato:

  • racchiuderlo tra virgolette singole (il delimitatore di stringa letterale ).
  • Preceduto da una barra rovesciata ("\"), che è interpretato come un carattere di escape. Ciò significa che, in C#, il formato stringa deve essere @ -quotato o il carattere letterale deve essere preceduto da una barra rovesciata aggiuntiva.
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"); 
} 

O

if (t.Days > 0) 
    return t.ToString(@"d'd, 'hh':'mm':'ss"); 
0
return t.ToString(@"d\d\, hh\:mm\:ss") 
Problemi correlati