如何从datetime获取AM / PM? C#

时间:2013-12-09 19:24:50

标签: c# asp.net

我有这样的约会:

equipBooking.BookedFromDteTme.Date = `{12/5/2013 12:00:00 AM}`

我希望像这样申请时间,但我不知道如何从最后获得AM和PM。

dtStartTimeHour.SelectedItem = equipBooking.BookedFromDteTme.TimeOfDay.Hours;
dtStartTimeMin.SelectedItem = equipBooking.BookedFromDteTme.TimeOfDay.Minutes;
**dtStartTimeAMPM.SelectedItem = equipBooking.BookedFromDteTme.???????.;**

请帮帮我。

我尝试过这样的事情:

var startDatestr = equipBooking.BookedFromDteTme.TimeFrom.Split(new string[] { ":", ":",":",":" }, StringSplitOptions.RemoveEmptyEntries);

AM/PM = startDatestr[3]

3 个答案:

答案 0 :(得分:6)

如果你只想要字符串,你可以这样做:

equipBooking.BookedFromDteTme.ToString("tt");

或者对于布尔结果使用:

bool isPM = (equipBooking.BookedFromDteTme.Hour >= 12);

顺便说一句,您无需致电TimeOfDay - 您可以直接从Hour获取MinuteDateTime财产:

dtStartTimeHour.SelectedItem = equipBooking.BookedFromDteTme.Hour;
dtStartTimeMin.SelectedItem = equipBooking.BookedFromDteTme.Minute;
dtStartTimeAMPM.SelectedItem = equipBooking.BookedFromDteTme.ToString("tt");

答案 1 :(得分:2)

尝试使用dateTime.ToString("tt");

答案 2 :(得分:2)

TimeSpan不会存储时间,而是存储任何时间间隔的长度。它没有AM / PM的概念。

TimeOfDay返回自午夜以来的时间量。

如果Hours大于或等于12,那将是PM。