我正在尝试将以下格式的字符串转换为epoch时间(自1970年以来的秒数)在MS Excel 2013中:
20130817T140000Z
(2013年8月17日14:00)。尝试了单元格格式,但是它无法处理T
和Z
或一般格式。=(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)
=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))
(保留HTML,不解释)。
dd/mm/yyyy hh:mm:ss
试试这个:
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
是您的日期与时代开始日期之间的秒差。
有用的 链接
更新:基于 @user2140261 的建议。
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
- user2140261这将为您提供精确到分钟的日期。如果需要,您可以按照该模式获取秒数。
=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)
您可以使用此版本将字符串转换为Epoch时间
=(TEXT(LEFT(A1,8)&MID(A1,10,6),"0000-00-00 00\:00\:00")-25569)*86400
这个公式使用TEXT
函数将您的字符串转换为一个看起来像有效日期/时间的字符串 - 当您减去25569(1970年1月1日)时,它将强制将该字符串转换为有效的日期/时间,并且结果可以乘以一天中的秒数以获得Epoch时间。