#.net #asp.net-mvc-2 #data-annotations #editorfor #dataformat
#.net #asp.net-mvc-2 #данные-аннотации #редактор для #формат данных
Вопрос:
В моей модели у меня есть свойство myDate, которое имеет тип datetime. Я подписываю свойство атрибутом DisplayFormat в этом режиме:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy hh:mm}")]
public DateTime MyDate { get; set; }
на мой взгляд:
...
<%= Html.EditorFor(model => model.Evento.MyDate)%>
...
почему, если значение свойства равно ‘2011-05-03 14:47’, на мой взгляд (в EditorFor), я вижу ‘05.03.2011 02.47’?
DataFormatString указан правильно!
большое спасибо за ответ
Alberto
Ответ №1:
Если я не ошибаюсь, строка формата {0:dd/MM/yyyy hh:mm}
будет выводиться как 03/05/2011 02.47
. Вы видите то, что я ожидал увидеть.
ОБНОВЛЕНИЕ: Чтобы получить 24-часовую запись, вы можете использовать {0:dd/MM/yyyy HH:mm}
заглавную HH
для обозначения часа.
Комментарии:
1. моя проблема в том, что время отформатировано неправильно. Я ожидал, что в 14:47 не будет 02.47…
2. @Альберто Рубини: А, понятно. Я обновил свой ответ, чтобы отразить то, чего вы пытаетесь достичь. Надеюсь, у вас это сработает.
Ответ №2:
Это потому, что :
это зарезервированный символ, указывающий разделитель времени для данного языка, который в вашем случае может оказаться .
символом. Вы хотите:
DataFormatString = @"{0:dd/MM/yyyy HH:mm}"
Возможно, вы также захотите использовать HH
24-часовой формат вместо hh
.