| 
    
            
         
         | 
    
  | 
ASP.Net, MVC - как русифицировать дату? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Sabre    
     27.08.21 
            ✎
    12:35 
 | 
         
        У меня такая проблема - представление (страница HTML) проверяет дату в формате ДДММГГГГ, а бэкэнд - в формате ММДДГГГГ. Из за этого получается каламбур: если нужно ввести день месяца больше, чем 12, то в формате 13.01.2000 ругается проверка на странице, а если 01.13.2000 - то уже ругаются темные силы бэкенда (они, кстати, предупреждение на страничку и отправляют).
 
        Часть проблем решил, добавив у свойств классов такое: [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:yyyy}", ApplyFormatInEditMode = true)] Однако теперь фронт не принимает входящее значение даты с бэкэнда. Так можно очень долго возиться, и врядли получится все как надо. Решил спросить тут - уверен, у российских программистов это тривиальная процедура настройки приложения.  | 
|||
| 
    1
    
        Sabre    
     27.08.21 
            ✎
    12:36 
 | 
         
        Кстати, вот это вот не работает - {0:yyyy}. Но это уже другая история... Работает так: "{0:dd'/'MM'/'yyyy}"     
         | 
|||
| 
    2
    
        Sabre    
     27.08.21 
            ✎
    12:50 
 | 
         
        В HTML под капотом при открытии вот так: value="27/08/2021" (пользователь же видит пустое представление даты)
 
        После того, как пользователь выберет сам: value="2021-08-27"  | 
|||
| 
    3
    
        Sabre    
     27.08.21 
            ✎
    12:59 
 | 
         
        Наковырял вот что: 
 
        Если у свойства класса подставить буржуйский формат даты, то в этом формате данные попадают под капот HTML, а пользователь уже видит дату в другом, нормальном, нашем формате. В общем, вот так дата передается на фронт нормально: [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] [Display(Name = "Дата постройки здания")] public DateTime? BuildingConstructionDate { get; set; } Если найти, где настройка глобализации в приложении и выставить российскую, то все будет хорошо. Вот это в файле gloval.asax не срабатывает: <system.web> <globalization culture="ru-RU" uiCulture="ru-RU" />  | 
|||
| 
    4
    
        Serginio1    
     27.08.21 
            ✎
    13:48 
 | 
         
        Лучше здесь вопросы задавать http://rsdn.org/     
         | 
|||
| 
    5
    
        Serginio1    
     27.08.21 
            ✎
    14:12 
 | 
         
        Или сюда https://ru.stackoverflow.com/     
         | 
|||
| 
    6
    
        Sabre    
     27.08.21 
            ✎
    14:21 
 | 
         
        (4) (5) На стаке я уже давно с индусами тусуюсь, а вот про rsdn почему то впервые слышу. Из наших все время попадался только cyberforum     
         | 
|||
| 
    7
    
        Serginio1    
     27.08.21 
            ✎
    17:03 
 | 
         
        rsdn старый сайт. Сейчас там поутихло по сравнению с нулевыми, но тусуются грамотные прогеры.
 
        В любом случае лучше задавать вопросы по C# точно не на этом форуме  | 
|||
| 
    8
    
        Fram    
     27.08.21 
            ✎
    17:30 
 | 
         
        Работа с датой в вебе это полный пи...! Независимо от языка. Значение в HTML всегда в формате гггг-мм-дд. И вот вокруг этого надо уже плясать и во фронте и в бэке     
         | 
|||
| 
    9
    
        Fram    
     27.08.21 
            ✎
    17:38 
 | 
         
        Либо забить на input type="date" и писать свой input с обработкой ввода каждого символа     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |