c#是否可以在日期时间格式中减去一天

c# Is it possible to subtract a day in the datetime format

我有以下简单示例:

string dt = DateTime.Now.ToString("yyyy-MM-dd hh.mm.ss");

我无法更改 DateTime.Now,但我可以更改日期时间格式 yyyy-MM-dd hh.mm.ss。按照此示例,结果必须是今天的日期,但我需要使用除日(年、月、小时、分钟和秒)之外的相同参数获取昨天的日期。例如。 2015-08-23 12.09.59 必须是 2015-08-22 12.09.59。那么是否可以在日期时间格式中使用一些“-”运算符或其他东西来实现结果?

如果你想要昨天的日期,你可以这样做

string dt = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd hh.mm.ss");

DateTime.AddDays() 允许您添加天数,正数表示未来日期,负数表示过去日期。

E.g. 2015-08-23 12.09.59 must be 2015-08-22 12.09.59. So is it possible to use some "-" operator or something else inside the datetime format to achieve the result?

不,在 DateTime 格式中是不可能的。你不能改变任何事情。因为它仅用于定义以字符串格式显示的日期格式。任何加法或减法只能在按照 "Arghya C".

的建议将其转换为字符串格式之前完成

能否解释一下您的局限性,以便我们解决您的问题。

如果您只能影响日期时间模式,则使用 roundtrip format 并将返回的字符串解析回日期时间,添加计算并将其格式化为所需格式:

var dateTimeString = badLibrary.GetDateTime("o");
var dateTime = DateTime.Parse(dateTimeString, null, DateTimeStyles.RoundtripKind);
var newDateTime = dateTime.AddDays(-1);

return newDateTime.ToString("yyyy-MM-dd hh.mm.ss");