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

问题描述 投票:34回答:9

我想使用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);

我怎么能这样做?

提前致谢 :)

c# asp.net
9个回答
98
投票

使用值为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}


12
投票

您发布的代码是错误的。

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

使用一次调用DateTime.Today然后使用ToString和适当的格式字符串来格式化日期。

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

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

4
投票

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

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

3
投票

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

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

要么

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

3
投票

这样的事情应该有效

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

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

如果你想要删除时间元素,那么添加.Date只会限制它到日期,即时间是00:00:00

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


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

0
投票

它所暗示的DateTime.Today是今天的日期,你需要在前一天获得日期,所以你用AddDays(-1)减去一天;

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

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


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的单个实例;

© www.soinside.com 2019 - 2024. All rights reserved.