在Excel中将string转换为纪元时间
我试图将以下格式的string转换为: 20130817T140000Z
(2013年8月17日14:00)到MS Excel 2013中的时间 (1970年以来的秒数)。
尝试单元格格式,但它不适用于T
和Z
或一般的格式。
这将把你的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/时间,结果可以相乘以一天中的秒数来获取大纪元的时间