如何从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")); }
没有内置函数,主要是因为你不需要它:
- 如果您正在执行此操作以输出给用户,请查看使用格式字符串。
- 如果您正在进行此计算,则可以直接减去日期时间或添加时间跨度。
除此之外,数学计算很简单,并且在其他答案中已经可用。