내 응용 프로그램에서 MVC Culture는 "en-US"로 설정되고 UICulture는 "nl-NL"로 설정됩니다.
Datetime 개체가 포함 된 모델을 렌더링하는 뷰가 있습니다.
나는 이런 식으로 렌더링하는 경우 : 그것이 EN-US 문화 형식으로 표시됩니다UICulture를 Html.EditorFor 메서드로 설정하십시오.
Html.EditorFor(x => x.ForFilter.FromDate)
. 그래서 네덜란드의 형식으로 날짜를 표시하기 위해 나는이 작업을 수행했다 :
var shortDatePattern = System.Threading.Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern;
@Html.TextBoxFor(x => x.ForFilter.FromDate, new {Value = Model.ForFilter.FromDate.ToString(shortDatePattern) })
나는 내가 DateTime
필드에 사용할 수있는 DisplayFormat
속성의 존재를 알고 있지만,이 솔루션으로 인해 아니다 UICulture
은 런타임에 결정됩니다.
EditorFor
및 TextboxFor
방법으로 Culture 대신 UICulture
을 사용하는 것이 더 멋진 해결책입니까?
Microsoft는 예, 물론 내가주는 또 다른 예를 미국 이외의 형식으로 날짜가 MVC – Liam
에 있는지 잊고 -의 것으로 보인다. Session.CreateSQLQuery() 및 List() 메소드를 통해 nhibernate로 손으로 작성한 SQL 쿼리를 실행할 때 단지 원시 객체 만 가져옵니다. 그런 다음 Convert.ToDateTime (x [1])과 같은 것을하려고하면; 여기서 x는 사용하는 SQL 서버에서 반환 된 날짜 형식이 응용 프로그램 문화권의 예상 형식과 일치하지 않으면 문제가되는 원시 객체의 객체 배열입니다. 이것은 응용 프로그램 문화가 UICulture와 항상 같을 수없는 또 다른 이유입니다. – user1980412