我想根据计算结果从我的日期时间变量中添加/减去X小时。我尝试了以下语法
string lsdt;
var hours = (dt1 - dt2).TotalHours;
var CalculatedDT = Convert.ToDateTime(lsdt.AddHours(hours));
告诉我错误
'串'不包含' AddHours'的定义没有扩展方法' AddHours'接受类型' string'的第一个参数。可以找到
从hours
变量string
中减去变量lsdt
的正确方法是什么?
答案 0 :(得分:3)
lsdt
不是 DateTime
变量,而是string
。因此,您收到错误消息:
'string'不包含'AddHours'的定义,也没有扩展名 方法'AddHours'接受'string'类型的第一个参数可能是 结果
您必须先将string
转换为DateTime
结构:
DateTime dt = DateTime.Parse(lsdt);
然后您可以使用AddHours
结构可用的DateTime
方法:
var hours = (dt1 - dt2).TotalHours;
var CalculatedDT = dt.AddHours(hours);
对于更安全的方法,正如Joel Etheron所建议的那样,在使用之前,您还可以使用TryParse
检查解析的string
的有效性:
DateTime dt;
bool result = DateTime.TryParse(lsdt, out dt);
if (!result) {
//Do something, don't continue
}