Hora de fecha y hora? en formato de 24 horas

157

¿Entonces tengo esta fecha y hora? y lo que quiero hacer es obtener la hora pero mostrarla en formato de 24 horas.
Por ejemplo:
si la hora es 2:20:23 pm quiero convertirlo a 14:20 y eso es todo.

Estoy trabajando con Visual C #. Cualquier idea por favor, gracias.

Tengo algo como esto

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

    string retornar = "";
    //here goes what i need
}
euther
fuente
@OrelEraki, ¿hablas en serio? Esta pregunta fue publicada antes de esa por dos años. Al menos verifique sus hechos antes de llamar duplicado.
Archibald
No hay necesidad de salir, fue en 2014. Se eliminó.
Orel Eraki
44
"hh" en minúscula es para notación am / pm, "HH" es para notación 24h
Antoine Meltzheim

Respuestas:

275

Puede obtener el resultado deseado con el siguiente código. Two 'H' HHes para formato de 24 horas.

return fechaHora.Value.ToString("HH:mm");
vtortola
fuente
8
Descripción de por qué esto funciona sería útil. Como HH para formato de 24 horas como hh para 12 horas.
Luke Alderton el
139
date.ToString("HH:mm:ss"); // for 24hr format
date.ToString("hh:mm:ss"); // for 12hr format, it shows AM/PM

Consulte este enlace para ver otros Formateadores en DateTime.

Manish Basantani
fuente
19

Usar ToString("HH:mm")ciertamente te da lo que quieres como una cadena .

Si desea la hora / minuto actual como números , la manipulación de cadenas no es necesaria; puedes usar la TimeOfDaypropiedad:

TimeSpan timeOfDay = fechaHora.TimeOfDay;
int hour = timeOfDay.Hours;
int minute = timeOfDay.Minutes;
Dan Tao
fuente
Me gusta este método porque me da valores enteros para el cálculo.
Hao Nguyen
Esta fue la solución preferida para mí porque solo necesitaba el int desde la hora del día. Mucho más fácil que convertir a una cadena solo para volver a analizar en una fecha y hora.
Sev
6

Prueba esto:

//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);
}
Mike Dinescu
fuente