파헤 치고 나서 컨트롤러의 액션 메서드에 CultureInfo ( "en-US") 를 갖도록 Thread
의 CurrentCulture 값을 설정했습니다 .
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US")
모든보기에서이 설정을 사용하려는 경우 몇 가지 다른 옵션 이 있습니다.
CurrentCulture
속성 값 정보 :
하는 CultureInfo 함께 관련 객체와이 속성에 의해 반환되는 객체는, 날짜, 시간, 숫자, 통화 값, 텍스트의 정렬 순서, 케이싱 규칙 및 문자열 비교에 대한 기본 형식을 결정합니다.
출처 : MSDN CurrentCulture
참고 :CurrentCulture
컨트롤러가 이미 CultureInfo("en-US")
날짜 형식이 인 또는 이와 유사한 상태로 실행중인 경우 이전 속성 설정은 선택 사항 일 수 "MM/dd/yyyy"
있습니다.
CurrentCulture
속성을 설정 한 후 코드 블록을 추가하여 날짜를 "M/d/yyyy"
뷰의 형식으로 변환합니다 .
@{
var shortDateLocalFormat = "";
if (Model.AuditDate.HasValue) {
shortDateLocalFormat = ((DateTime)Model.AuditDate).ToString("M/d/yyyy");
}
}
@shortDateLocalFormat
위의 @shortDateLocalFormat
변수는 ToString("M/d/yyyy")
작품 으로 형식이 지정됩니다 . ToString("MM/dd/yyyy")
를 사용 하면 처음에 한 것처럼 문제가 발생하지 않습니다 . Tommy ToString("d")
가 추천하는 작품도 마찬가지입니다. 실제로 "d"
는 "짧은 날짜 패턴"을 나타내며 다른 문화 / 언어 형식으로도 사용할 수 있습니다.
위의 코드 블록은 멋진 도우미 메서드 또는 이와 유사한 방법 으로 대체 될 수도 있습니다 .
예를 들면
@helper DateFormatter(object date)
{
var shortDateLocalFormat = "";
if (date != null) {
shortDateLocalFormat = ((DateTime)date).ToString("M/d/yyyy");
}
@shortDateLocalFormat
}
이 도우미 호출과 함께 사용할 수 있습니다.
@DateFormatter(Model.AuditDate)
Update , DateTime.ToString (String, IFormatProvider) 메서드를 사용할 때 동일한 작업을 수행하는 다른 방법이 있음을 알았습니다 . 이 방법을 사용하면 Thread
의 CurrentCulture
속성 을 사용할 필요가 없습니다 . 는 CultureInfo("en-US")
> - 번째 인수로서 건네 IFormatProvider를 하는 DateTime.ToString(String, IFormatProvider)
방법.
수정 된 도우미 메서드 :
@helper DateFormatter(object date)
{
var shortDateLocalFormat = "";
if (date != null) {
shortDateLocalFormat = ((DateTime)date).ToString("d", new System.Globalization.CultureInfo("en-US"));
}
@shortDateLocalFormat
}
.NET 바이올린
No overload for method 'ToString' takes 1 arguments