我正在编辑管理表单,并且我正在从数据库中填充两个DropDownLists(小时和分钟)。我需要从数据库中返回的DateTime对象中提取小时(12 hour format)和分钟。以下是我尝试过的内容:
DateTime dt = DateTime.Parse(biz.GetStartDateByID(classID).ToString());
int hrs = Convert.ToDateTime(dt.ToString()).Hour;
For" 2012-03-08 22:45:00.000"在数据库中,这给了" 22"用了几个小时。以12小时格式和分钟提取小时数的最佳方法是什么?例如,如果DateTime对象中的小时值是" 18",我需要它作为" 6"。
答案 0 :(得分:1)
试试这个:
String.Format("{0:hh}", dt);
这将以12小时零填充格式为您提供小时。
没有零填充:
String.Format("{0:h}", dt);
答案 1 :(得分:0)
DateTime.Hour % 12
那当然会给0-11 ......你想要1-12吗?如果是这样的话:
((DateTime.Hour + 11) % 12) + 1
我认为内置的内容并不简单......
您也可以访问此链接... http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm
答案 2 :(得分:0)
int hrs24 = dt.Hour;
int hrs12 = hrs24 > 12 ? hrs24 - 12 : (hrs24 == 0 ? 12 : hrs24);
答案 3 :(得分:0)
只需使用适当的DateTime格式进行字符串转换
DateTime dt = DateTime.Parse(biz.GetStartDateByID(classID).ToString());
int hrs = Convert.ToDateTime(dt.ToString("hh:mm:ss")).Hour;
供参考,请查看this