2012-05-01 86 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日期/时间格式中。你必须自己编写代码。我看到其他日期/时间库中的日期和时间没有看到类似的情况,说实话,我已经看到期间的条件格式,但这是一个不同的问题。唯一的例外是如果时间是整数秒,可以表示“小数秒”,以便它们被删除 - 包括小数点)。

相关问题