Изменить формат DateTime при использовании Entity Framework - PullRequest
0 голосов
/ 10 июня 2019

Как изменить формат DateTime при использовании Entity Framework?

В моей таблице базы данных столбец sb_ActivityDate имеет тип данных "datetime".

enter image description here

Вот как я получаю значение этого столбца:

var query = context.CPDActivities.AsQueryable();

if (!(member.MemberID == Guid.Empty))
{
    query = query.Where(e => e.sb_MemberContactId == member.MemberID).OrderBy(e=>e.sb_ActivityDate).ThenBy(e => e.CreatedOn);
} 
else
{
    return null;
}

И пошаговое выполнение кода позволяет увидеть, что значение 'sb_ActivityDate' теперь в формате M / d / yyyyгде мне нужно дд / мм / гггг.

enter image description here

Свойство для даты, сначала созданной базой данных Entity Framework:

        public Nullable<System.DateTime> sb_ActivityDate { get; set; }

Редактировать 1: формат моей системной даты:

enter image description here

Редактировать 2:

  • Visual Studio 2017
  • .Net версия 4.5.1

Редактировать 3:

enter image description here

Редактировать 4:

Добавленопростое текстовое поле теста с датой:

tb_dateTest.Text = DateTime.Now.ToString();

enter image description here

Похоже, что культура CMS не вызывает проблему.Что-то еще форматирует дату.

1 Ответ

1 голос
/ 10 июня 2019

Проблема связана с региональными / культурными настройками, и кажется, что те, над которыми работает Visual Studio, не совпадают с базой данных. Начиная с VS2015, вы можете проверить, в каком формате будет работать отладчик, проверив значение для Thread.CurrentThread.CurrentCulture

Если вы хотите отформатировать дату / время во что-то конкретное для отображения даты / времени, например, из веб-приложения, где обычно пользователи могут иметь разные настройки культуры, то вам нужно преобразовать его в строку в точке, Отображаем дату / время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...