Perché ho ricevuto un errore quando voglio ottenere la stringa di un TimeSpan
con un formato personalizzato.Errore TimeSpan.ToString ("hh: mm")
DateTime.Now.TimeOfDay.ToString("hh:mm");
// Error: Input string was not in a correct format.
Perché ho ricevuto un errore quando voglio ottenere la stringa di un TimeSpan
con un formato personalizzato.Errore TimeSpan.ToString ("hh: mm")
DateTime.Now.TimeOfDay.ToString("hh:mm");
// Error: Input string was not in a correct format.
DateTime.Now.TimeOfDay.ToString(@"hh\:mm\:ss")
Non utilizzare TimeOfDay
. Direttamente fare ToString()
su DateTime.Now
:
DateTime.Now.ToString("hh:mm");
TimeOfDay
è un TimeSpan
. I documenti indicano chiaramente il sovraccarico di TimeSpan.ToString(string format)
:
Il parametro di formato può essere qualsiasi identificatore di formato standard o personalizzato valido per i valori di TimeSpan. Se il formato è uguale a String.Empty o è null, il valore di ritorno dell'oggetto TimeSpan corrente viene formattato con l'identificatore di formato comune ("c"). Se il formato è qualsiasi altro valore, il metodo genera un FormatException.
Se è necessario farlo utilizzando una variabile TimeSpan
, si può semplicemente aggiungere ad una variabile DateTime
che ha la sua parte tempo impostato a zero, e quindi utilizzare la sua ToString()
:
DateTime.Today.Add(YourTimeSpanVariable).ToString("hh:mm");
che è stato un esempio utilizzando Appuntamento. Ho una variabile 'TimeSpan'. Controlla questo codice: '(nuovo TimeSpan (10, 20, 0).) ToString (" hh: mm ")' –
@Mohamadshiralizadeh: vedi la mia modifica. – dotNET
Secondo MSDN timeofday è un TimeSpan. E negli esempi di TimeSpan.ToString si vede che lo :
deve essere sottoposto a escape.
hh \: mm \: ss: 03:00:00
Questo si spiega anche sulla pagina Custom TimeSpan Format Strings
Gli identificatori di formato TimeSpan personalizzate non includono i simboli di separazione segnaposto , ad esempio i simboli che separano i giorni da ore, ore da minuti o secondi da secondi frazionari. Invece, questi simboli devono essere inclusi nella stringa di formato personalizzata come stringhe letterali. Ad esempio, "dd \ .hh \: mm" definisce un punto (.) Come separatore tra giorni e ore e due punti (:) come separatore tra ore e minuti.
in modo da provare:
DateTime.Now.TimeOfDay.ToString("hh\:mm");
rimuovere 'TimeOfDay'. just'DateTime.Now.ToString ("hh: mm"); 'come nota a margine, potrebbe essere ambiguo se il tempo è superiore a 12nn, meglio avere questo' hh: mm tt' –
che era un esempio di DateTime. Ho una variabile TimeSpan. Controlla questo codice: (nuovo TimeSpan (10, 20, 0).) ToString ("hh: mm") –
'DateTime.Now.TimeOfDay.ToString (" hh \\: mm ");' –