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

时间:2015-10-01 09:22:48

标签: c# date datetime 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。那么可以在datetime格式中使用一些“ - ”运算符或其他东西来实现结果吗?

3 个答案:

答案 0 :(得分:7)

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

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

DateTime.AddDays()可让您添加天数,未来日期为正数,过去日期为负数。

答案 1 :(得分:2)

  

E.g。 2015-08-23 12.09.59必须是2015-08-22 12.09.59。它就是这样   可以使用一些" - "操作员或其他内部的东西   datetime格式实现结果?

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

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

答案 2 :(得分:1)

如果您只能影响日期时间模式,那么使用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");