在Excel中表示DateTime
的最佳方式是什么?我们使用Syncfusions Essential XlsIO将值输出到Excel文档,效果很好。但我不知道如何在列中显示DateTime
。我自己直接在Excel中显示时也不知道。这是不可能的吗?我必须使用单独的日期和时间列吗?我真的希望我不这样做。因为它会破坏排序等...除非Excel有什么聪明的东西来解决这个问题...
在Excel中表示DateTime
的最佳方式是什么?我们使用Syncfusions Essential XlsIO将值输出到Excel文档,效果很好。但我不知道如何在列中显示DateTime
。我自己直接在Excel中显示时也不知道。这是不可能的吗?我必须使用单独的日期和时间列吗?我真的希望我不这样做。因为它会破坏排序等...除非Excel有什么聪明的东西来解决这个问题...
9条答案
按热度按时间cunj1qz11#
Excel中日期时间的基础数据类型是64位浮点数,其中一天的长度等于
1
,1st Jan 1900 00:00
等于1
。因此11th June 2009 17:30
大约等于39975.72917
。如果单元格包含这样的数值,只需对该单元格应用日期时间格式,就可以将其转换为日期时间。
因此,如果您可以使用上面的公式将日期时间转换为数字,将它们输出到相关的单元格,然后将单元格格式设置为适当的日期时间格式,例如
yyyy-mm-dd hh:mm:ss
,那么应该可以实现您想要的。此外,Stefan de Bruijn还指出,Excel中存在一个错误,即它错误地假设1900年是闰年,因此在进行计算(Wikipedia)时需要考虑到这一点。
oipij1gg2#
如果你像我一样,在格式对话框中的日期或时间下找不到日期时间,你应该可以在“自定义”中找到它。
我刚刚从“自定义”中选择了“dd/mm/yyyy hh:mm”,对结果很满意。
brjng4g33#
您可以执行以下操作:
=Datevalue(text)+timevalue(text)
.进入不同类型的日期格式并选择:
dd-mm-yyyy mm:ss am/pm
.tzxcd3kk4#
某些版本的Excel没有标准选取列表中可用的日期-时间格式,但您可以按以下方式输入自定义格式字符串,如yyyy-mm-dd hh:mm:ss:
1.右键单击-〉设置单元格格式
1.编号选项卡
1.选择类别自定义
1.在“Type”字段中输入自定义格式字符串
这在我的Excel 2010上工作
fcg9iug35#
Excel显示日期类型的方式与显示日期时间的方式类似。右键单击受影响的单元格,选择 * 设置单元格格式 *,然后在 * 类别 * 下选择 * 日期 *,并在 * 类型 * 下选择如下所示的类型:
那应该可以达到你的要求了。我用这种格式对一些示例数据进行了排序测试,看起来效果很好。
jjjwad0x6#
Excel希望日期和时间存储为浮点数,其值取决于工作簿的Date 1904设置,加上数字格式(如“mm/dd/yyyy”或“hh:mm:ss”或“mm/dd/yyyy hh:mm:ss”),以便将数字作为日期/时间显示给用户。
使用SpreadsheetGear for .NET可以执行以下操作:工作表。单元格[“A1”]。值=日期时间。现在;
这会将DateTime转换为double(Excel用于日期/时间的基础类型),然后根据值自动使用默认日期和/或时间数字格式设置单元格的格式。
SpreadsheetGear还具有IWorkbook.DateTimeToNumber(DateTime)和NumberToDateTime(double)方法,这些方法可以将.NET DateTime对象转换为Excel可以使用的双精度值。
我希望XlsIO也有类似的东西。
免责声明:我自己的SpreadsheetGear LLC
bprjcwpo7#
可以使用以下选项之一为XlsIO中的单元格设置日期时间值
您可以在here中找到更多信息。
o4hqfura8#
所以我一整天都在纠结这个问题。
基本上,我现在排序和解决方案的一部分是Excel本身生成的代码是:
[$-en-AU]年-月-日时:分
所以,首先,
然后将其另存为CSV文件,然后关闭并重新打开,检查Excel是否未更改日期格式。
奇怪的是,如果它确实工作(我已经成功地重试了几次),当你检查你创建的单元格的格式时,它会把格式改为“通用”。
不过说真的,谁在乎呢,只要能用!!
然后您可以复制和粘贴单元格,并在任何您想要的地方使用它!!
希望这个解决方案对你有效!!
问候
理查德德
nfg76nw09#
dd-mm-yyyy hh:mm:ss.000通用可排序日期/时间模式