Я использую следующий кодПочему DisplayFormat с DataFormatString изменяет «/» (слэш) на «-» (тире)?
// Model
[DisplayFormat(
ApplyFormatInEditMode = true,
DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime StartDate { get; set; }
// View
@Html.EditorFor(model => model.StartDate)
форматировать StartDate
но результат xx-xx-xxxx
вместо xx/xx/xxxx
. Как я могу решить эту проблему и всегда использовать формат xx/xx/xxxx
?
UPDATE: Изменение культуры в en-US
, кажется, работает:
var culture = new CultureInfo(userCulture);
System.Threading.Thread.CurrentThread.CurrentCulture = "en-US";
System.Threading.Thread.CurrentThread.CurrentUICulture = "en-US";
но это не является решением, потому что я могу использовать другую культуру, и я все еще хочу, чтобы показать дату в по-другому.
Если текущая культура сообщает, что дата должна отображаться dd-MM-yyyy
, то с использованием DisplayFormat
, как указано выше, эффект не действует, и даты не отображаются, как dd/MM/yyyy
.
Что вы подразумеваете под «Возможно, я использую другую культуру, и я все еще хочу показать дату по-другому»? –
Представьте, что текущий пользователь использует культуру «pt-PT», затем DisplayFormat продолжает менять ее на «dd-MM-yyyy» (как это должно быть), когда я хочу показать ее так: «dd/MM/yyyy» – Dryadwoods
Немного загадочно, что если культура пользователей говорит о том, что тире должны быть разделителями, вы настаиваете на использовании косой черты. –