2011-02-23 3 views
1

내가 가지고있는 사용자 정의 시간 형식으로 다음과 같은 문자열 TheTimeFormat :C# 시간 형식의 불확실성

"{0:h:mm tt}" 

나는 다음과 같은 날짜 시간 TheTime 있습니다

{1/14/2011 2:19:00 AM} 

을 나는 다음과 같은 성명

ThisTime = TheTime.ToString(TheTimeFormat); 
에게 있습니다

ThisTime이 "{0:2:19 AM}"과 같은 이유는 무엇입니까? 2:19 AM이어야하며 이유를 알 수 없습니다. gridview에서, 나는 다음과 같은 성명을 사용하고 그것은 매력처럼 작동합니다 :

; 여기서 TheUserPreferences.UserTimeFormat은 동일한 형식 문자열입니다.

제안 사항?

답변

3

DateTimeToString 메서드에 시간 형식을 입력 할 때 자리 표시자가 필요하지 않습니다. 즉, 당신이 이것을 할 수 :

TheTimeFormat = "h:mm tt";

ThisTime = TheTime.ToString(TheTimeFormat)

을 당신에게 원하는 출력을 줄 것입니다.

편집 :

: 주석의 확장 문제, 이것은 당신이 (DB에 TheTimeFormat의 상기 버전 및 저장) 자리 표시자를 필요 무언가에 형식을 넣을 수 있도록 할 당

string formatWithPlaceholder = "{0 :"+ TheTimeFormat + "}";

나는 단지 concatentation 대신 string.Format으로 간단히 놀았지만 형식의 중괄호를 사용하면 문제가 발생합니다. 그럼에도 불구하고,이 작품은,하지만 난 특히 연결을 좋아하지 않아.

+0

아아아; 그럼 내 gridview는 어때? 데이터베이스에서 "{0 : h : mm tt}"문자열을 사용자의 시간 형식으로 저장합니다. ((BoundField) (MyGrid.Columns [0])). (데이터베이스를 "h : mm tt"로 변경하면 DataFormatString = TheUserPreferences.UserTimeFormat? – frenchie

0

TheTimeFormat"0:h:mm tt"으로 변경하십시오. 당신이 String.Format()를 사용하거나 Console.WriteLine() 같은 다른 방법이 내부적으로 String.Format()를 사용하는 경우 : "{YYY X}" 형식

당신은 단지 이 필요합니다.