如何在C#中获取昨天的日期

时间:2012-06-29 05:25:02

标签: c# asp.net

我想使用C#在我的ASP.NET Web应用程序中检索昨天的日期。

我已经开始讨论这个话题,但我想我无法理解它。

我正在使用的代码只是给我今天的日期

        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);

我该怎么办?

提前致谢:)

9 个答案:

答案 0 :(得分:95)

使用值-1

DateTime.AddDays()方法
var yesterday = DateTime.Today.AddDays(-1);

这会给你:{6/28/2012 12:00:00 AM}

您也可以使用

DateTime.Now.AddDays(-1)

这将为您提供当前时间的上一个日期,例如{6/28/2012 10:30:32 AM}

答案 1 :(得分:12)

您发布的代码错误。

您不应多次拨打DateTime.Today。如果您碰巧在日期更改时运行该代码,则可能会得到完全错误的结果。例如,如果您在2011年12月31日运行它,您可能会获得“2011-1-1”。

使用DateTime.Today一次调用,然后使用ToString和相应的格式字符串,根据需要格式化日期。

string result = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");

答案 2 :(得分:4)

var yesterday = DateTime.Now.AddDays(-1);

答案 3 :(得分:4)

您将通过以下代码段获取昨天的日期。

DateTime dtYesterday = DateTime.Now.Date.AddDays(-1);

答案 4 :(得分:3)

这样的事情应该有效

var yesterday = DateTime.Now.Date.AddDays(-1);

DateTime.Now为您提供当前日期和时间。

如果您要删除时间元素,则添加.Date会将其约束到日期,即时间为00:00:00

最后.AddDays(-1)删除了1天给你昨天。

答案 5 :(得分:3)

您不需要多次调用DateTime.Today ,只需单次使用它并按照您想要的格式格式化日期对象..就像那样

 string result = DateTime.Now.Date.AddDays(-1).ToString("yyyy-MM-dd");

OR

 string result = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");

答案 6 :(得分:1)

string result = DateTime.Now.Date.AddDays(-1).ToString("yyyy-MM-dd");

答案 7 :(得分:0)

DateTime.Today因为它暗示是今天的日期,您需要在前一天获取日期,以便使用AddDays(-1)减去一天;

DateTime中有足够的选项可以获取ToShortDateString之类的格式,具体取决于您的文化,而您无需单独连接它们。

此外,您可以在.ToString()实例的DateTime版本中使用所需的格式

答案 8 :(得分:0)

DateTime dateTime = DateTime.Now ; 
string today = dateTime.DayOfWeek.ToString();
string yesterday = dateTime.AddDays(-1).DayOfWeek.ToString(); //Fetch day i.e. Mon, Tues
string result = dateTime.AddDays(-1).ToString("yyyy-MM-dd");

以上代码段将起作用。还建议将DateTime.Now做成单个实例;