如何减去 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()
我在数据库中有这样一种格式的字段: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()