Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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#datetime对象转换为Excel日期格式_C#_Excel_Csv_Datetime - Fatal编程技术网

将C#datetime对象转换为Excel日期格式

将C#datetime对象转换为Excel日期格式,c#,excel,csv,datetime,C#,Excel,Csv,Datetime,我需要将C#datetime对象转换为可怕的Excel日期格式: i、 e.自1900年1月1日起的天数,以浮点数表示 有没有办法不用DIY代码就能做到这一点? 我需要它来创建Excel友好的CSV导出 在谷歌上搜索,我没有发现任何有用的东西,除了一篇好的博客文章,Excel日期使用OLE自动化日期格式。您可以使用 OA日期是双精度的,其整数部分为1899年12月30日的日期偏移量(即早期日期为负数),小数部分为时间除以24 这种类型在COM/VB6时代被大量使用。现在,Excel需要它,当您

我需要将C#datetime对象转换为可怕的Excel日期格式:

i、 e.自1900年1月1日起的天数,以浮点数表示

有没有办法不用DIY代码就能做到这一点? 我需要它来创建Excel友好的CSV导出


在谷歌上搜索,我没有发现任何有用的东西,除了一篇好的博客文章,Excel日期使用OLE自动化日期格式。您可以使用

OA日期是双精度的,其整数部分为1899年12月30日的日期偏移量(即早期日期为负数),小数部分为时间除以24


这种类型在COM/VB6时代被大量使用。现在,Excel需要它,当您需要调用COM API时,这些API需要日期或带有日期内容的变体

您可以使用以下方法将Excel日期转换回C#DateTime


您是否尝试将其作为yyyy MM dd放入CSV?CSV与Excel不同。而且Excel日期定义得很好,如果您知道日期的实际存储方式,那么就不必担心任何格式。这曾经是常识once@PanagiotisKanavos谢谢你的快速回复。大多数用户将单击CSV,并使用Excel打开文件。因此,时间戳必须格式化为“OLE自动化数据”(即表示日期的Excel浮点数)。我完全理解CSV只是文本,没有“列类型”与列一起携带CSV是一个文本文件。Excel文件是一个压缩的xml文件。单击
csv
Excel时,将使用当前用户区域设置和默认值导入文本文件。您询问的是如何在Excel中存储日期,而不是如何将CSV数据导入Excel。PS链接的文章更多地与R的差异和误解有关。如果您想要日期的明确文本格式,请仅使用ISO8601格式,例如
2016-10-21T13:45
。Excel检测到这不是本地化的日期格式。其他任何内容实际上都是可能失败的本地化格式。
return DateTime.FromOADate(SerialDate);