如何减去 DateTime 字段和 Duration?

How to subtract DateTime field and Duration?

我在数据库中有这样一种格式的字段:2013-06-18 17:00:00.000 和此格式的第二个字段持续时间:3000(这代表秒,所以它是 50 分钟)

我需要减去这两个字段并在另一个字段中设置结果:2013-06-18 16:10:00.000

另外一点是,它们都只能以字符串格式从数据库中检索。所以它们都是 strings.

谢谢

首先您需要 Parse 日期时间。然后使用 AddSeconds:

减去
var date = DateTime.Parse("2013-06-18 17:00:00.000");
var newDate = date.AddSeconds(int.Parse("-3000"));

您可以使用 newDate.ToString() 获取字符串形式的日期。

您可以找到 DateTime here 的文档。

更新: 将秒更改为字符串值。它使用 Parse 转换为整数。

您可以减去日期时间对象。 (如果是日期时间类型)如果不是,你应该解析。

为了处理错误,我建议使用 DateTime.tryParse(value, out dateTime);

DateTime parsedDateFromBD;

if(DateTime.tryParse("2013-06-18 17:00:00.000", out parsedDateFromBD)
{
    // do Stuff
}
else
{
   // do something else
}

如果您从数据库中获取它作为日期时间,您可以简单地:

var calcDate1 = dateFromBD.addSeconds(3000); //to Add
var calcDate2 = dateFromBD.addSeconds(-3000); //to subtract

干杯

里卡多

除了这里的其他答案之外,还有如何将 newDate 解析为满足所需输出的字符串

string date = "2013-06-18 17:00:00.000";
string duration = "-3000";

int durationSeconds = int.Parse(duration);

var newDate = DateTime.Parse(date).AddSeconds(durationSeconds).ToString("yyyy-MM-dd HH:mm:ss.fff");

输出为

//2013-06-18 16:10:00.000

在这里你可以找到更多关于DateTime.ToString()