2012-05-01 4 views
2

jquery FullCalendar plugin의 형식은 깔끔합니다.시간 (날짜 시간) 형식 조건부로 분 표시

시간이 오후 7시이면 형식은 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

나는 너를 고치고 있지 않았다, 나는 방공호에 대한 쪽지를 남겼다. ;-) – KingCronus

1

아니, 내장 .NET 날짜/시간 형식 내에서이 어디에도 없습니다. 직접 코드를 작성해야합니다.

(다른 날짜/시간 라이브러리의 날짜 및 시간과 관련하여 솔직히 비슷한 것을 보지 못했습니다 . 기간에 대한 조건부 서식을 보았습니다.하지만 다른 문제입니다. 유일한 예외는 다음과 같습니다. 시간이 초 단위 인 경우 소수점 포함하여 삭제할 수있는 "소수 초"가 표시됩니다.