У меня довольно простой проект ядра asp.net (MVC), который включает в себя некоторые поля даты в данных.
Я хочу, чтобы даты отображались в виде дд / мм / гггг, поэтому поля даты получили формат отображения следующим образом:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime? AccessExpiresDate { get; set; }
При тестировании в моей среде windows dev все хорошо. Если я хочу ввести 1 декабря 2018 года, я ввожу 12/12/2018, и он сохраняется как таковой. Я возвращаюсь, и это снова отображается как таковое (01/12/2018).
Но при развертывании в linux (Centos) он ведет себя по-другому. Он отображается правильно (дд / мм / гггг), но, похоже, его необходимо ввести как ММ / дд / гггг для редактирования.
Например, если я введу дату как 12.01.2008, сохраню, а затем просмотрю, она будет отображаться как 01.12.2008.
Если я вернусь к редактированию, оно будет отображаться как 12/12/2018. Если я затем сохраню его без изменений, а затем снова перейду к просмотру, он отобразится как 01.12.2010.
Если я введу дату как 20/12/2018, она обнулит ее, как если бы она была недопустимой (так как мне кажется, что я ввожу 20-й месяц).
Итак - что здесь происходит? Почему запись даты ведет себя по-разному при развертывании в Linux? Как я могу заставить его всегда ожидать, что дата будет дд / мм / гггг?
Спасибо.