我想使用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);
我该怎么办?
提前致谢:)
答案 0 :(得分:95)
使用值-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}
答案 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做成单个实例;