如何减去DateTime字段和Duration?

时间:2016-01-09 18:36:58

标签: c# datetime visual-studio-2012 duration

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

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

一个补充是,它们都只能以字符串格式从数据库中检索。所以它们都是字符串

由于

3 个答案:

答案 0 :(得分:4)

首先,您需要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转换为整数。

答案 1 :(得分:2)

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

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

belongs_to

如果你从db那里得到它作为日期时间你可以简单地:

DateTime parsedDateFromBD;

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

干杯

里卡多

答案 2 :(得分:1)

除了这里的其他答案之外,还有如何将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()

的更多信息