在Excel中将string转换为纪元时间

我试图将以下格式的string转换为: 20130817T140000Z (2013年8月17日14:00)到MS Excel 2013中的时间 (1970年以来的秒数)。

尝试单元格格式,但它不适用于TZ或一般的格式。

这将把你的date转换成一些有用的Excel将理解,如果你在单元格A1中有你的date,然后将其转换成大纪元时间

 =(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是您的inputdate作为文本, A2是格式化的date, A3是您的date和时代开始date之间的秒差。

有用的链接

更新:基于@ user2140261的build议。

假定要转换的string在单元格B1中,可以在单元格上使用以下自定义格式来获取date/时间。

 =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准确到一分钟。 如果需要,您可以按照模式获取秒数。

 =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) 

您可以使用此版本将您的string转换为纪元时间

=(TEXT(LEFT(A1,8)&MID(A1,10,6),"0000-00-00 00\:00\:00")-25569)*86400

这使用TEXT函数将string转换为看起来像有效date/时间的string – 当您减去25569(1/1/1970)时,将该string合并到有效的date/时间,结果可以相乘以一天中的秒数来获取大纪元的时间