DateTime的小时? 24小时格式

时间:2010-06-11 14:34:44

标签: c# datetime

所以我有这个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
    }

5 个答案:

答案 0 :(得分:224)

您可以使用以下代码获得所需的结果。 HH中的两个'H'是24小时格式。

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

答案 1 :(得分:122)

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

请参阅DateTime中其他格式化程序的this链接。

答案 2 :(得分:12)

使用ToString("HH:mm")肯定会为您提供字符串所需的内容。

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

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

答案 3 :(得分:4)

试试这个:

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

答案 4 :(得分:0)

Try this, if your input is string 
For example 

string input= "13:01";
string[] arry = input.Split(':');                  
string timeinput = arry[0] + arry[1];
private string Convert24To12HourInEnglish(string timeinput)

 {

DateTime startTime = new DateTime(2018, 1, 1, int.Parse(timeinput.Substring(0, 2)), 
int.Parse(timeinput.Substring(2, 2)), 0); 
return startTime.ToString("hh:mm tt");

}
out put: 01:01