我想使用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);
我怎么能这样做?
提前致谢 :)
使用值为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}
您发布的代码是错误的。
你不应该多次调用DateTime.Today
。如果您碰巧在日期更改时运行该代码,则可能会得到完全错误的结果。例如,如果您在2011年12月31日运行它,您可能会得到“2011-1-1”。
使用一次调用DateTime.Today
然后使用ToString
和适当的格式字符串来格式化日期。
string result = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
var yesterday = DateTime.Now.AddDays(-1);
您将通过以下代码段获取昨天的日期。
DateTime dtYesterday = DateTime.Now.Date.AddDays(-1);
你不需要多次调用DateTime.Today
,只需单次使用它并按照你想要的格式格式化日期对象..就像那样
string result = DateTime.Now.Date.AddDays(-1).ToString("yyyy-MM-dd");
要么
string result = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
这样的事情应该有效
var yesterday = DateTime.Now.Date.AddDays(-1);
DateTime.Now
为您提供当前的日期和时间。
如果你想要删除时间元素,那么添加.Date
只会限制它到日期,即时间是00:00:00
。
最后.AddDays(-1)
删除了1天给你昨天。
string result = DateTime.Now.Date.AddDays(-1).ToString("yyyy-MM-dd");
它所暗示的DateTime.Today
是今天的日期,你需要在前一天获得日期,所以你用AddDays(-1)
减去一天;
DateTime中有足够的选项可以获取ToShortDateString
等格式,具体取决于您的文化,您无需单独连接它们。
您还可以在.ToString()
实例的DateTime
版本中使用所需的格式
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的单个实例;