Как получить вчера дату в С#
Я хочу получить вчерашнюю дату в своем веб-приложении ASP.NET с помощью С#.
Я уже выкопал тему, но, думаю, я не смог ее понять.
Код, который я использую, просто дает мне сегодняшнюю дату
string yr = DateTime.Today.Year.ToString();
string mn = DateTime.Today.Month.ToString();
string dt = DateTime.Today.Day.ToString();
date = string.Format("{0}-{1}-{2}", yr, mn, dt);
Как я могу это сделать?
Спасибо в Advance:)
Ответы
Ответ 1
Используйте метод DateTime.AddDays() со значением -1
var yesterday = DateTime.Today.AddDays(-1);
Это даст вам: {6/28/2012 12:00:00 AM}
Вы также можете использовать
DateTime.Now.AddDays(-1)
Это даст вам предыдущую дату с текущим временем, например. {6/28/2012 10:30:32 AM}
Ответ 2
Код, который вы опубликовали, неверен.
Вы не должны делать несколько вызовов DateTime.Today
. Если вам удастся запустить этот код так же, как и изменения даты, вы можете получить совершенно неправильные результаты. Например, если вы запустили его 31 декабря 2011 года, вы можете получить "2011-1-1".
Используйте один вызов DateTime.Today
, затем используйте ToString
с соответствующей строкой формата, чтобы отформатировать дату по вашему желанию.
string result = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
Ответ 3
var yesterday = DateTime.Now.AddDays(-1);
Ответ 4
Вы получите вчерашний день следующим фрагментом кода.
DateTime dtYesterday = DateTime.Now.Date.AddDays(-1);
Ответ 5
Что-то вроде этого должно работать
var yesterday = DateTime.Now.Date.AddDays(-1);
DateTime.Now
дает текущую дату и время.
Если вы хотите удалить элемент времени, то добавление .Date
ограничивает его только датой, т.е. время 00:00:00
.
Наконец .AddDays(-1)
удаляет 1 день, чтобы дать вам вчера.
Ответ 6
Вам не нужно вызывать DateTime.Today
несколько раз, просто используйте его один раз и отформатируйте объект даты в своем формате желаний.. вот так
string result = DateTime.Now.Date.AddDays(-1).ToString("yyyy-MM-dd");
ИЛИ
string result = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
Ответ 7
string result = DateTime.Now.Date.AddDays(-1).ToString("yyyy-MM-dd");
Ответ 8
DateTime.Today
, так как это означает сегодняшнюю дату, и вам нужно получить дату за день до этого, чтобы вычесть один день с помощью AddDays(-1)
;
В DateTime есть достаточные параметры, чтобы получить форматирование, подобное ToShortDateString
, в зависимости от вашей культуры, и вам не нужно их конкатенировать отдельно.
Также вы можете иметь желаемый формат в версии .ToString()
экземпляра DateTime