Question

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.

Was it helpful?

Solution

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)

OTHER TIPS

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top