2010-06-11 128 views
104

所以我有这个DateTime?我想要做的是获得小时,但以24小时制显示。
例如:
如果时间是下午2点20分23秒。我想将它转换为14:20就是这样。从DateTime开始的小时?在24小时格式

我正在使用Visual C#。 任何想法请,谢谢。

我有这样的事情

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

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

@OrelEraki你是认真的吗?这个问题在这之前两年就已经发布了。至少在调用复制之前检查你的事实。 – Archibald 2016-09-26 05:50:11

+0

有没有必要退出,这是在2014年。删除它。 – 2016-09-26 07:17:36

+0

“hh”以小写字母表示am/pm表示法,“HH”表示24h表示法 – 2017-09-13 13:48:01

回答

173
return fechaHora.Value.ToString("HH:mm"); 
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); 
} 
97
date.ToString("HH:mm:ss"); // for 24hr format 
date.ToString("hh:mm:ss"); // for 12hr format, it shows AM/PM 

参考this链接,以日期时间等格式化程序。

11

使用ToString("HH:mm")当然会给你想要的字符串

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

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

我喜欢这种方法,因为它给出了用于计算的整数值。 – 2016-01-04 20:03:28

+0

这对我来说是首选的解决方案,因为我只需要从一天中的小时开始使用int。然后转换为一个字符串再简单地解析回DateTime就容易多了。 – Sevren 2016-11-17 22:22:54