如何从DateTime获取12小时的日期

当我得到DateTime.Hour属性时,我总是得到24小时的时间(因此下午6点会给我18个)。

我怎么得到“12小时”的时间,所以下午6点才给我6点。

我显然可以自己做检查,但我认为有一个内置的function。

怎么样:

DateTime.Hour % 12 

那当然会给0-11 ……你想要1-12吗? 如果是这样:

 ((DateTime.Hour + 11) % 12) + 1 

认为没有更简单的内置……

DateTime.Now.ToString( “HH”); – >使用此function,您将获得“06”18小时。

我不知道任何内置方法,但您总是可以添加扩展方法来完成此任务。

当然,您总是可以用您想要的方式替换代码。

 public static class Extension { public static int GetTwelveCycleHour(this DateTime dateTime) { if (dateTime.Hour > 12) { return dateTime.Hour - 12; } return dateTime.Hour; } } 

简单来说:

 public static int GetTwelveCycleHour(this DateTime dateTime) { return Convert.ToInt32(dateTime.ToString("h")); } 

没有内置函数,主要是因为你不需要它:

  • 如果您正在执行此操作以输出给用户,请查看使用格式字符串。
  • 如果您正在进行此计算,则可以直接减去日期时间或添加时间跨度。

除此之外,数学计算很简单,并且在其他答案中已经可用。