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

akh*_*hil 40 c# asp.net

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

我已经挖掘了这个话题,但我想我无法理解它.

Code im using只是给我今天的日期

        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);
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?

提前致谢 :)

Hab*_*bib 105

使用值为的DateTime.AddDays()方法-1

var yesterday = DateTime.Today.AddDays(-1);
Run Code Online (Sandbox Code Playgroud)

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

你也可以使用

DateTime.Now.AddDays(-1)
Run Code Online (Sandbox Code Playgroud)

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


Mar*_*ers 12

您发布的代码是错误的.

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

使用单个调用DateTime.Today然后使用ToString适当的格式字符串来根据需要格式化日期.

string result = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
Run Code Online (Sandbox Code Playgroud)

  • 它可能是一个罕见的错误,但主要的一点是,当你可以在一行中正确编写时,写出四行不正确的代码? (13认同)

Hit*_*tel 6

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

DateTime dtYesterday = DateTime.Now.Date.AddDays(-1);
Run Code Online (Sandbox Code Playgroud)


Tal*_*lha 5

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

 string result = DateTime.Now.Date.AddDays(-1).ToString("yyyy-MM-dd");
Run Code Online (Sandbox Code Playgroud)

或者

 string result = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
Run Code Online (Sandbox Code Playgroud)