如何在Excel中表示DateTime

时间:2009-06-11 15:01:33

标签: excel datetime

在Excel中表示DateTime的最佳方式是什么?我们使用Syncfusions Essential XlsIO将值输出到Excel文档,该文档非常有用。但我无法弄清楚如何在列中显示DateTime。不是直接在Excel中自己做的。这不可能吗?我是否必须使用单独的日期和时间列?我真的希望我没有,因为它有点打破排序等等......除非Excel有一些聪明的东西来修复它......

8 个答案:

答案 0 :(得分:70)

Excel中日期时间的基础数据类型是64位浮点数,其中一天的长度等于1,而1900年1月1日00:00等于1.因此,2009年6月11日17:30约为39975.72917。

如果单元格包含此类数字值,则只需将日期时间格式应用于单元格即可将其转换为日期时间。

因此,如果您可以使用上面的公式将日期时间转换为数字,请将它们输出到相关的单元格,然后将单元格格式设置为适当的日期时间格式,例如yyyy-mm-dd hh:mm:ss,那么应该可以实现你想要的东西。

同样Stefan de Bruijn指出Excel中存在一个错误,它错误地假设1900是闰年,因此您在进行计算时需要考虑到这一点(Wikipedia)。 / p>

答案 1 :(得分:55)

如果像我一样,您无法在格式对话框中找到日期或时间下的日期时间,您应该可以在“自定义”中找到它。

我刚从'Custom'中选择'dd / mm / yyyy hh:mm',我对结果感到满意。

答案 2 :(得分:17)

您可以执行以下操作:

=Datevalue(text)+timevalue(text)

进入不同类型的日期格式并选择:

dd-mm-yyyy mm:ss am/pm

答案 3 :(得分:11)

某些版本的Excel没有标准选择列表中提供的日期时间格式,但您只需输入自定义格式字符串,例如yyyy-mm-dd hh:mm:ss by:

  1. 右键单击 - >格式化单元格
  2. 数字标签
  3. 选择类别自定义
  4. 在“类型”字段中输入自定义格式字符串
  5. 这适用于我的Excel 2010

答案 4 :(得分:1)

Excel可以与DateTime类似的方式显示日期类型。右键单击受影响的单元格,选择 Format Cells ,然后在 Category 下选择 Date ,在 Type 下选择类型看起来像这样:

3/14/01 1:30 PM

那应该按照你的要求做。我用这种格式测试了一些样本数据的排序,似乎工作正常。

答案 5 :(得分:1)

您可以使用其中一个选项

将日期时间值设置为XlsIO中的单元格
sheet.Range["A1"].Value2 = DateTime.Now;
sheet.Range["A1"].NumberFormat = "dd/mm/yyyy";

sheet.Range["A2"].DateTime = DateTime.Now;
sheet.Range["A2"].NumberFormat = "[$-409]d-mmm-yy;@";

您可以找到更多信息here

答案 6 :(得分:1)

dd-mm-yyyy hh:mm:ss.000 通用可排序日期/时间模式

答案 7 :(得分:0)

Excel要求将日期和时间存储为浮点数,其值取决于工作簿的Date1904设置,加上数字格式,例如“mm / dd / yyyy”或“hh:mm:ss”或“ mm / dd / yyyy hh:mm:ss“以便将数字显示给用户作为日期/时间。

使用SpreadsheetGear for .NET您可以这样做:     worksheet.Cells [“A1”]。Value = DateTime.Now;

这会将DateTime转换为double,它是Excel用于日期/时间的基础类型,然后根据值自动格式化具有默认日期和/或时间数字格式的单元格。

SpreadsheetGear还有IWorkbook.DateTimeToNumber(DateTime)和NumberToDateTime(double)方法,这些方法从.NET DateTime对象转换为Excel可以使用的双精度。

我希望XlsIO能有类似的东西。

免责声明:我拥有SpreadsheetGear LLC