Posts Tagged ‘epoch’

SCPI – Covert DateTime to Epoch (Unix time)

June 15, 2021

Upserting to OData entities in Successfactors need the date to be in the Unix (Epoch) time format. The normal datetime value can be changed to Unix time either by groovy script, or by XSLT. For eg, think the input XML like this :

<Input>
   <UnixTime>1444150760</UnixTime>
   <ISODateTime>2015-10-06T16:59:20.555</ISODateTime>
</Input> 

The conversion can be done with XSLT like this :

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

<xsl:template match="/Input">
    <output>
		<ISODateTime>
			<xsl:value-of select="xs:dateTime('1970-01-01T00:00:00') + xs:dayTimeDuration(concat('PT', UnixTime, 'S'))"/>
		</ISODateTime>
		<UnixTimestamp>
			<xsl:value-of select="floor((xs:dateTime(ISODateTime) - xs:dateTime('1970-01-01T00:00:00')) div xs:dayTimeDuration('PT1S')) "/>
		</UnixTimestamp>
	</output>
</xsl:template> 

</xsl:stylesheet>

The epoch basically, is the seconds after the date 01.01.1970. So apparently, the calculation includes taking the difference.

Thats it, happy coding!