从DateTime中提取值

时间:2012-03-16 04:21:59

标签: c# asp.net datetime

我正在编辑管理表单,并且我正在从数据库中填充两个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"。

4 个答案:

答案 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