2010-06-11 26 views
104

Quindi ho questo DateTime? e quello che voglio fare è ottenere l'ora, ma mostrarla in formato 24 ore.
Ad esempio:
Se l'ora è 2:20:23 pm Voglio convertirlo alle 14:20 e basta.Ora da DateTime? in formato 24 ore

Sto lavorando con Visual C#. Qualche idea per favore, grazie.

Ho qualcosa di simile

public static string FormatearHoraA24(DateTime? fechaHora) 
    { 
     if (!fechaHora.HasValue) 
      return ""; 

     string retornar = ""; 
      //here goes what i need 
    } 
+0

@OrelEraki sei serio? Questa domanda è stata pubblicata prima di quella di due anni. Controlla almeno i fatti prima di chiamare duplicati. – Archibald

+0

Non è necessario uscire, era il 2014. Rimosso. –

+0

"hh" in minuscolo è per notazione am/pm, "HH" è per notazione 24h –

risposta

173
return fechaHora.Value.ToString("HH:mm"); 
4

Prova questo:

//String.Format("{0:HH:mm}", dt); // where dt is a DateTime variable 

public static string FormatearHoraA24(DateTime? fechaHora) 
{ 
    if (!fechaHora.HasValue) 
     return ""; 

    return retornar = String.Format("{0:HH:mm}", (DateTime)fechaHora); 
} 
97
date.ToString("HH:mm:ss"); // for 24hr format 
date.ToString("hh:mm:ss"); // for 12hr format, it shows AM/PM 

consultare this collegamento per altri formattatori in DateTime.

11

L'utilizzo di ToString("HH:mm") fornisce sicuramente quello che si desidera come stringa .

Se si desidera l'ora/minuto corrente come numeri, la manipolazione di stringhe non è necessaria; puoi utilizzare la proprietà TimeOfDay:

TimeSpan timeOfDay = fechaHora.TimeOfDay; 
int hour = timeOfDay.Hours; 
int minute = timeOfDay.Minutes; 
+0

Mi piace questo metodo perché mi dà valori interi per il calcolo. –

+0

Questa è stata la soluzione preferita per me perché avevo solo bisogno di int dall'ora del giorno. Molto più facile quindi convertire in una stringa solo per analizzare di nuovo in un DateTime. – Sevren

Problemi correlati