从DateTime中提取值

本文关键字:提取 DateTime | 更新日期: 2023-09-27 18:27:54

我正在处理一个编辑管理表单,并从数据库中填充两个DropDownList(小时和分钟)。我需要从DB中返回的DateTime对象中提取小时(12小时格式)和分钟。以下是我尝试过的:

DateTime dt = DateTime.Parse(biz.GetStartDateByID(classID).ToString());
int hrs = Convert.ToDateTime(dt.ToString()).Hour;

对于DB中的"2012-03-08 22:45:00.000",这给出了小时的"22"。提取12小时格式的小时和分钟的最佳方法是什么?例如,如果DateTime对象中的hours值是"18",我需要它作为"6"。

从DateTime中提取值

试试这个:

String.Format("{0:hh}", dt);

这将为您提供12小时零填充格式的小时数。

对于无零填充:

String.Format("{0:h}", dt);
int hrs24 = dt.Hour;
int hrs12 = hrs24 > 12 ? hrs24 - 12 : (hrs24 == 0 ? 12 : hrs24);
DateTime.Hour % 12

那当然是0-11。。。你想要1-12吗?如果是:

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

我不认为有什么更简单的内置…

你也可以访问这个链接。。。http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm

只需使用正确的格式进行DateTime到字符串的转换

DateTime dt = DateTime.Parse(biz.GetStartDateByID(classID).ToString());
int hrs = Convert.ToDateTime(dt.ToString("hh:mm:ss")).Hour;

如需参考,请查看此