我的数据表中需要一个具有转换时间戳的新列。我的表看起来像..
BuildId unixTimeStamp BuildDate
1 1401286554000 -
2 1401286554000 -
3 1401286554000 -
需要使用以下公式计算新列BuildDate
dtDateTime.AddSeconds( unixTimeStamp ).ToLocalTime();
我怎样才能实现同样的目标?一直试图使用
做同样的事情workTable.Columns["BuildDate"].Expression ="dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime()";
获取以下错误
The expression contains undefined function call dtDateTime.AddSeconds().
答案 0 :(得分:0)
尝试更改
workTable.Columns["BuildDate"].Expression ="dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime()";
到
workTable.Columns["BuildDate"].Expression = "new DateTime(2010, 10, 10, 10, 10, 10).AddSeconds(double.Parse(unixTimeStamp)).ToLocalTime()";
我假设您正在为dtDateTime使用硬编码值。
此外unixTimeStamp
必须为double
,如果string
{{1}},它会爆炸,你可以尝试施放。
答案 1 :(得分:0)
我认为不可能在DataColumn.Expression中使用任何DateTime-Function。 (https://msdn.microsoft.com/de-de/library/system.data.datacolumn.expression%28v=vs.110%29.aspx) 所以我不会尝试使用表达式但使用循环
foreach (DataRow dr in workTable.Rows)
dr["BuildDate"] = new DateTime(1970, 1, 1,0,0,0).AddSeconds(int.Parse(dr["unixTimeStamp"].ToString()));