2012-05-01 88 views
2

jquery FullCalendar plugin有一個整齊的時間格式。時間(日期時間)格式有條件顯示分鐘

如果時間是7:00 pm,格式顯示爲7p

如果時間是7:30 am,格式顯示爲7:30a



問:有沒有辦法使用標準格式用C#銳利做到這一點?很顯然,我可以自己創建邏輯來做到這一點,但我希望有一個格式化字符串,可以使這一點成爲可能。

即(不工作):

MyDateTime.ToString("h{:mm}t"); 
+3

。替換(「:00」,「」) –

+0

沒有內置的方式盡我所知......儘管你可以爲此做出自己的擴展方法?即ToShortHandString() – KingCronus

回答

3

格式化字符串不具備條件句 - 有沒有辦法來指定格式字符串中的條件。

您將需要使用標準if並相應的格式。

if(MyDateTime.Minutes == 0) 
{ 
    return MyDateTime.ToString("h"); 
} 

return MyDateTime.ToString"h:mmt"); 

,或者在一個行:

return MyDateTime.ToString((MyDateTime.Minutes == 0)?"h":"h:mmt"); 
+0

儘管如此,如果在整個項目中使用它,我還是會試圖用擴展方法來達到這個目的。 – KingCronus

+0

@KingCronus - 當然。我沒有說你不能把上面的內容合併成一個。 – Oded

+0

我沒有糾正你,我只是爲OP留下一張紙條;-) – KingCronus

1

沒有,有沒有這樣的內置.NET日期/時間格式中。你必須自己編寫代碼。我看到其他日期/時間庫中的日期和時間沒有看到類似的情況,說實話,我已經看到期間的條件格式,但這是一個不同的問題。唯一的例外是如果時間是整數秒,可以表示「小數秒」,以便它們被刪除 - 包括小數點)。

相關問題