str = String.Format("{0:MMM d m:mm"+yearStr+"}", dt);
나는 "D"후 "에"단어를 넣어 싶어하지만 내가 원하지 않는 형식화 할 문자열. 나는 "at"이라는 단어를 원한다.
어떻게하면됩니까?
str = String.Format("{0:MMM d m:mm"+yearStr+"}", dt);
나는 "D"후 "에"단어를 넣어 싶어하지만 내가 원하지 않는 형식화 할 문자열. 나는 "at"이라는 단어를 원한다.
어떻게하면됩니까?
당신은 더 이상 문자열을 백 슬래시로 모든 문자를 이스케이프 것보다 아마도 더 쉽고 좀 더 읽을 따옴표와 리터럴 문자열을 둘러싸고 수 있습니다 구분 기호 ").
(그리고 당신은 h:mm
대신 m:mm
을 찾으시는 것입니까?) 그냥 재미를 위해
string.Format(@"{0:MMM d \a\t m:mm" + yearStr + "}", dt);
참고 이중 이스케이프는 - 나는 일반 문자로 문자열 내부 \
을 쓸 수 있었다, 그래서 나는 varbatim 문자열을 사용했다. DateTime
의 형식화 루틴은이 (다시)를 이스케이프 시퀀스로 해석합니다.
string.Format("{0:MMM d} at {0:m:mm" + yearStr + "}", dt);
첫 번째 변형하는 것은 일부에 의해 구역질 간주 될 수 있습니다
여기에 간단한 변종이다. 후자의 것은 읽기에 매우 명확합니다.
str = String.Format("{0:MMM d 'at' m:mm"+yearStr+"}", dt);
이 (MSDN 라이브러리 Custom Date and Time Format Strings를 참조하십시오 "리터럴 문자열을 검색 :
,하지만 작동합니다.
var what=new object[] { "{{{{0:MMM d}}}} {0} {{{{0:m:mm:{{0}}}}}}", "at", yearStr, dt };
var that=what.Aggregate((a, b) => String.Format((String)a, b));
두 줄을 하나로 병합 할 수 있습니다. 두 가지 형식 사이에 넣으려는 at
도 매개 변수화됩니다.
이 솔루션은 나에게 가장 잘 맞았고, 다른 답변은 {}의 여러 블록을 사용하게하지 않았다. – Baconbeastnz
(또는 'H : mm' 대문자'H '도 포함) –
@JeppeStigNielsen : 좋은 지적. –