2013-12-09 56 views
1

我有這樣一個日期:如何從日期時間獲取AM/PM? C#

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] 
+0

如果小時數少於12,我想這將是AM,否則是PM。 – itsme86

+1

重複的:http://stackoverflow.com/questions/7875259/how-get-ampm-from-datetime – Maess

+0

可能重複[如何從DateTime獲取AM/PM值?](https:// stackoverflow問題:7875259/how-do-i-get-the-am-pm-value-from-datetime) –

回答

6

如果你只是想字符串中,你可以這樣做:

equipBooking.BookedFromDteTme.ToString("tt"); 

或爲一個布爾值的用途:

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

BTW,你不需要調用TimeOfDay - 你可以得到Hour直接Minute酒店需要從DateTime

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

這將增加更多的代碼:( – patel

+0

@ vb1 - 1)不,它不會和2 )爲什麼這是一個問題? –

2

嘗試使用dateTime.ToString("tt");

2

TimeSpan不存儲時間的天,而是任何時間間隔的長度。它沒有上午/下午的概念。

TimeOfDay返回自午夜以來的時間量。

如果Hours大於或等於12,那將是PM。