问题描述:

I am trying to convert string in following format: 20130817T140000Z(17th Aug 2013 at 14:00) to epoch time (seconds since 1970) in an MS Excel 2013.

Tried cell formatting, but it doesn't work with T and Z or the format in general.

网友答案:

This will convert your date into somethign Excel will understand, If you have your date in Cell A1, Then convert that into Epoch Time

=(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)
网友答案:

Try this:

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 is your input date as text, A2 is a formatted date, and A3 is a seconds difference between your date and epoch start date.

Useful link

Update: based on @user2140261 suggestions.

网友答案:

Assuming the string to convert is in cell B1 you can use the following with a custom format on the cell to get the date/time.

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

The custom format is:

dd/mm/yyyy hh:mm:ss
网友答案:

This will get you the date with accuracy to the minute. You can follow the pattern to get seconds if necessary.

=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)
网友答案:

You could use this version to convert your string to Epoch time

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

This uses TEXT function to convert your string into a string that looks like a valid date/time - when you subtract 25569 (1/1/1970) that will co-erce that string to a valid date/time and the result can be multiplied by the number of seconds in a day to get Epoch time

相关阅读:
Top