从DateTime小时开始?24小时制


157

所以我有这个DateTime吗?而我想做的就是获取小时,但以24小时格式显示。
例如:
如果时间是下午2:20:23,我想将其转换为14:20就是这样。

我正在使用Visual C#。有什么想法,谢谢。

我有这样的东西

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

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

@OrelEraki你认真吗?这个问题在那之前两年一度发布。至少在调用重复项之前检查您的事实。
Archibald

无需退出,那是在2014年。将其删除。
Orel Eraki

4
小写的“ hh”表示上午/下午表示法,小写的“ hh”表示上午24小时表示法
Antoine Meltzheim

Answers:


275

您可以使用以下代码获得所需的结果。2'H' HH是24小时制。

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

8
关于此工作原理的描述将很有用。例如HH表示24小时格式,如HH表示12小时格式。
卢克·阿德顿

139
date.ToString("HH:mm:ss"); // for 24hr format
date.ToString("hh:mm:ss"); // for 12hr format, it shows AM/PM

请参考链接以获取DateTime中的其他格式化程序。


19

使用ToString("HH:mm")肯定会给您所需的字符串

如果您希望当前的小时/分钟为数字,则不需要字符串操作;您可以使用该TimeOfDay属性:

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

我喜欢这种方法,因为它为我提供了用于计算的整数值。
郝阮

这对我来说是首选的解决方案,因为我只需要一天中的一个小时。然后,将其转换为字符串以再次解析回DateTime会容易得多。
2016年

6

试试这个:

//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);
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.