ammu11 Ответов: 1

Как конвертировать тип данных datetime в строку в MVC


Я делаю проект, и я запутался в области того, как преобразовать дату и время в строковое значение?

контроллер

var FromDate = DateTime.Now.AddDays(-1);
                FromDateString = FromDate.ToString();


Я получаю правильное значение для fromdate, но оно не передается в FromDateString. Это FromDateString дали в параметре метода действия и получения значения.
Моя единственная проблема заключается в том, как я могу преобразовать эту дату-время в строку ??
FromDateString задается как строка, и это не может быть изменено. Возможно ли это сделать ?
кто-нибудь может помочь мне исправить мой код ??

Что я уже пробовал:

я искал код, но не понял, как писать в контроллере .

Maciej Los

Зачем вам нужно конвертировать дату в строку?
Вы хотите "конвертировать" дату в определенный формат, например: ddMMyyyy или MMddyyyy или yyyyMMdd?
В чем твоя проблема?
Что вы имеете в виду говоря: "не может быть изменено"?

ammu11

Нет, я ВАР FromDate я получаю значение, которое имеет тип datetime , datetime в этом FromDate, мне нужно получить это значение в FromDateString, но он показывает как null. Как я могу получить значение для FromDateString ??

Maciej Los

Извини, но я тебя не понимаю... Можете ли вы быть более конкретным и привести пример?
FromDateString возвращается ко мне "2017-05-24 08:20:12". Это не ноль.

ammu11

var FromDate = DateTime. Now. AddDays(-1);
когда я даю это я получаю yesterdays datetime to FromDate но
когда я отдам это
FromDateString = FromDate.Метод toString();
значение в FromDate не передается в FromDateString. Почему это ?? в настоящее время FromDateString находится в строковом типе данных. Мне нужно вставить значение в FromDate в FromDateString. Разве это возможно ?? Когда я даю, я получаю нулевое значение .

Maciej Los

Как я уже говорил, я получаю правильное значение. Почему ты этого не делаешь - понятия не имею. Используйте отладчик.

ammu11

Могу ли я, пожалуйста, изменить переменную FromDate на item, который является

ВАР пункт = Датавремя.Сейчас.AddDays(-1);

тогда я получаю значение для элемента как "2017-05-24 08:20: 12", но во второй строке

FromDateString = item.Метод toString();

здесь я получаю null в FromDateString. поскольку я объявил FromDateString как строку, поэтому я дал item. tostring (), значение в item не передается в FromDateString . это моя проблема, которую я проверил с помощью отладчика

1 Ответов

Рейтинг:
11

OriginalGriff

Код, который вы показываете, помещает формализованную строковую версию вчерашней даты в FromDateString - он не может делать ничего другого и будет делать это каждый раз, когда вы выполняете этот код.

И вот в чем загвоздка: если FromDateString равен null, это означает, что вы вообще не выполнили этот код! А почему бы и нет? Мы не знаем - мы понятия не имеем, как работает остальная часть вашего кода.

Так что начните с отладчика и поставьте туда пару точек останова. Первый идет по строкам, которые вы показываете выше, а другой(ы) идет, когда вы используете FromDateString для чего-либо: передачи его в метод, печати его, везде.
Теперь запустите свой код и посмотрите, выполняется ли код, который вы показываете здесь, до любого другого доступа к переменной. Если это не так, то вам нужно посмотреть на свой код и выяснить, почему нет - мы не можем сделать это за вас!
Если это так, то вам нужно посмотреть на определение FromDateString - это локальная переменная, которая маскирует переменную уровня класса с тем же именем, а затем означает, что вы никогда не устанавливаете версию уровня класса? Опять же-мы не можем сказать!


ammu11

@OriginalGriff я сделал так, как вы сказали, изменив какой-то код.
код есть

строки FromDate = Датавремя.Сейчас.AddDays(-2).Метод toString();
строки последней = Датавремя.Сейчас.Метод toString();

if (! String.IsNullOrEmpty(Todate.ToString ())& & amp; !String.IsNullOrEmpty(От Даты.Метод toString()))
{
BookingList = Список Заказов.Где (s => s.DateTime & gt;= FromDate.ToDateFromString() & & s.DateTime & lt;= Todate.ToDateFromString ()).Список();
}

Я изменил код на этот, потому что нужно только показать данные за последние два дня, а в БД у него есть три поля, и моя проблема здесь в том, что он не отображается, а количество в BookingList равно 0. Почему это ??

OriginalGriff

С какой стати ты играешь со струнами?
Когда вы делаете сравнение строк, он сравнивает их символ за символом - и первый другой символ определяет сравнение для всей строки.
Таким образом, в зависимости от того, какой языковой стандарт и стандартные форматы длинных и коротких дат для конкретного ПК вы используете (и в каком формате установлен POC, вставивший строку даты в БД), сравнение может возвращать любые результаты "больше" и "меньше".
Используйте значения DateTime напрямую и убедитесь, что ваши значения datetime в БД также являются значениями DateTime, а не строкой.