【发布时间】:2014-02-28 16:33:20
【问题描述】:
我正在尝试在 MS Excel 2013 中将字符串转换为以下格式:20130817T140000Z(2013 年 8 月 17 日 14:00)到 epoch time(自 1970 年以来的秒数)。
尝试了单元格格式,但它不适用于 T 和 Z 或一般格式。
【问题讨论】:
我正在尝试在 MS Excel 2013 中将字符串转换为以下格式:20130817T140000Z(2013 年 8 月 17 日 14:00)到 epoch time(自 1970 年以来的秒数)。
尝试了单元格格式,但它不适用于 T 和 Z 或一般格式。
【问题讨论】:
这会将您的日期转换为 Excel 可以理解的日期,如果您在单元格 A1 中有日期,则将其转换为纪元时间
=(DATE(LEFT(A1,4),MID(A1,5,2),MID(A1,7,2)) + TIME(MID(A1,10,2),MID(A1,12,2),MID(A1,14,2))-25569)*86400)
【讨论】:
试试这个:
A1=20130817T140000Z
A2=DATE(LEFT(A1,4),MID(A1,5,2),MID(A1,7,2))
A3=(DATEDIF("01/01/1970 00:00:00",A2,"D")+TIME(MID(A1,10,2),MID(A1,12,2),MID(A1,14,2)))*24*60*60
A1 是您输入的文本日期,A2 是格式化日期,A3 是您的日期和纪元开始日期之间的秒差。
有用link
更新:基于@user2140261 的建议。
【讨论】:
DateDif 功能已关闭,已知此功能会弄乱日期,您可以研究一下,这就是确切原因excel不支持,没有帮助。
A2=DATE(LEFT(A1,4),MID(A1,5,2),MID(A1,7,2))和A3=(DATEDIF("01/01/1970 00:00:00",A2,"D")+TIME(MID(A1,10,2),MID(A1,12,2),MID(A1,14,2)))*86400
假设要转换的字符串在单元格 B1 中,您可以在单元格上使用以下自定义格式来获取日期/时间。
=DATE(MID(B1,1,4),MID(B1,5,2),MID(B1,7,2))+TIME(MID(B1,10,2),MID(B1,12,2),MID(B1,14,2))
自定义格式为:
dd/mm/yyyy hh:mm:ss
【讨论】:
这将为您提供精确到分钟的日期。如有必要,您可以按照该模式获得秒数。
=DATE(VALUE(LEFT(A1,4)),VALUE(RIGHT(LEFT(A1,6),2)),VALUE(RIGHT(LEFT(A1,8),2)))+VALUE(RIGHT(LEFT(A1,11),2))/24+VALUE(RIGHT(LEFT(A1,13),2))/(24*60)
【讨论】:
您可以使用此版本将您的字符串转换为纪元时间
=(TEXT(LEFT(A1,8)&MID(A1,10,6),"0000-00-00 00\:00\:00")-25569)*86400
这使用TEXT 函数将您的字符串转换为看起来像有效日期/时间的字符串 - 当您减去 25569 (1/1/1970) 时,该字符串将强制转换为有效日期/时间和结果可以乘以一天中的秒数得到Epoch时间
【讨论】: