Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将.ToDateTime(D)与(DateTime)D进行比较_C# - Fatal编程技术网

C# 将.ToDateTime(D)与(DateTime)D进行比较

C# 将.ToDateTime(D)与(DateTime)D进行比较,c#,C#,如果我有一个值D,并希望确保它是datetime类型,那么以下两者之间有区别吗 DateTime dtm=Convert.ToDateTimeD DateTime dtm=DateTimeD 1是转换,而2是演员阵容?我假设在某些方面2是一个更轻的操作? 什么时候应该使用1而不是2 编辑 问题背景 D来自数据表中的单元格。我要做的是通过datatable.columnname查找任何日期单元格,然后在将其移动到xl之前对结果应用ToOADate函数。因此,如果dr是我的DataRowView,那

如果我有一个值D,并希望确保它是datetime类型,那么以下两者之间有区别吗

DateTime dtm=Convert.ToDateTimeD DateTime dtm=DateTimeD 1是转换,而2是演员阵容?我假设在某些方面2是一个更轻的操作? 什么时候应该使用1而不是2

编辑

问题背景

D来自数据表中的单元格。我要做的是通过datatable.columnname查找任何日期单元格,然后在将其移动到xl之前对结果应用ToOADate函数。因此,如果dr是我的DataRowView,那么我有以下两种选择之一:

//Convert
DateTime dtm;
dtm = Convert.ToDateTime(dr[i - 1]);
xlWorkSheet.Cells[rowCount, i].value = dtm.ToOADate();

//Cast
DateTime dtm;
dtm = (DateTime)dr[i - 1];
xlWorkSheet.Cells[rowCount, i].value = dtm.ToOADate();
Convert.ToDateTime有几个重载,可以将其他类型转换为DateTime。当您将非DateTime的实例转换为DateTime实例时,应该使用它。如果您试图解析字符串表示,还可以使用and

DateTimeD尝试直接将实例强制转换为DateTime。如果实例在调用之前不是DateTime,将引发异常。

Convert.ToDateTime有几个重载,将其他类型转换为DateTime。当您将非DateTime的实例转换为DateTime实例时,应该使用它。如果您试图解析字符串表示,还可以使用and


DateTimeD尝试直接将实例强制转换为DateTime。如果实例在调用之前还不是DateTime,则会引发异常。

通过使用Convert类,您实际上可以在不同类型之间进行转换。例如,您可以将字符串转换为日期时间。 强制转换仅适用于相同类型。因此,不能将字符串强制转换为Int32,因为这将引发强制转换异常

关于你的例子: 如果D的内容总是DateTime类型,那么您应该更喜欢强制转换,因为强制转换非常快。
如果您不知道D中是什么类型,可能是因为它是对象类型,您可能希望转换它,因为这比普通转换更优雅,因为此方法还允许您通过字符串日期字符串或Int32记号来设置日期时间。

通过使用Convert类,您实际上可以在不同类型之间进行转换。例如,您可以将字符串转换为日期时间。 强制转换仅适用于相同类型。因此,不能将字符串强制转换为Int32,因为这将引发强制转换异常

关于你的例子: 如果D的内容总是DateTime类型,那么您应该更喜欢强制转换,因为强制转换非常快。
如果您不知道D中是什么类型,可能是因为它是对象类型,您可能希望转换它,因为这比普通转换更优雅,因为此方法还允许您通过字符串日期字符串或Int32记号来设置日期时间。

@Oded好问题-它是DataTable中的一个单元格-在SQL server中,D所在的字段是从日期时间中提取的;我将把这个和更多的内容添加到OP@Oded添加了问题context的一个小解释当您说它们可能是日期时,这是指表示日期或DateTime对象的字符串还是其他内容?@Oded在SQL Server中,该字段是DateTime。我将再次编辑。@Oded问得好-这是数据表中的一个单元格-在SQL server中,从中提取D的字段是DateTime;我将把这个和更多的内容添加到OP@Oded添加了问题context的一个小解释当您说它们可能是日期时,这是指表示日期或DateTime对象的字符串还是其他内容?@Oded在SQL Server中,该字段是DateTime。我将再次编辑。+1听起来像是因为dr[I-1]已经是数据表中的日期时间,我最好使用cast,因为它更快+1听起来像是因为dr[I-1]已经是数据表中的日期时间,我最好使用cast,因为它更快