如何在 c # 中获得昨天和明天的日期时间

我有原则:

int MonthNow = System.DateTime.Now.Month;
int YearNow = System.DateTime.Now.Year;
int DayNow = System.DateTime.Now.Day;

我怎样才能得到 C # 中的昨天和明天、月份和年份?

当然,我可以写:

DayTommorow = DayNow +1;

但是明天可能是另外一个月或者一年。在 C # 内置的工具中是否有昨天和今天的发现?

184227 次浏览

你想要 DateTime.Today.AddDays(1)

诀窍是使用“ DateTime”来操作日期; 只有在需要从日期得到“最终结果”时才使用整数和字符串。

For example (pseudo code):

  1. 获取“明天的日期时间 = 现在 + 1”

  2. 确定结果日期的日期,星期的日期,月的日期——无论你想要什么。

DateTime tomorrow = DateTime.Today.AddDays(1);
DateTime yesterday = DateTime.Today.AddDays(-1);

使用 DateTime.AddDays()(MSDN Documentation DateTime.AddDays Method)。

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

今天:

DateTime.Today

Tomorrow :

DateTime.Today.AddDays(1)

昨日:

DateTime.Today.AddDays(-1)

你可以在 空气污染指数参考资料中找到这些信息。

var today = DateTime.Today;
var tomorrow = today.AddDays(1);
var yesterday = today.AddDays(-1);

你应该这样做,如果你想得到昨天和明天00:00:00时间:

DateTime yesterday = DateTime.Today.AddDays(-1);
DateTime tomorrow = DateTime.Today.AddDays(1); // Output example: 6. 02. 2016 00:00:00

请记住,如果你这样做:

DateTime yesterday = DateTime.Now.AddDays(-1);
DateTime tomorrow = DateTime.Now.AddDays(1); // Output example: 6. 02. 2016 18:09:23

那么你会得到当前时间减去一天,而不是昨天00:00:00时间。

To get "local" yesterday in UTC.

  var now = DateTime.Now;
var yesterday = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0, DateTimeKind.Utc).AddDays(-1);

注意不要在结果中添加不需要的时区,特别是当日期将通过 Web API 发送时。改为使用 UtcNow,使其没有时区。