Need help in XSLT for timezone conversion -


this xml data need change time zone indian time through xslt

2016-05-31t16:45:37.556z

kindly on

regards, siva

try:

<xsl:template name="utc-to-indian">     <xsl:param name="datetime"/>      <xsl:variable name="date" select="substring-before($datetime, 't')" />     <xsl:variable name="time" select="substring-before(substring-after($datetime, 't'), 'z')" />      <xsl:variable name="year" select="substring($date, 1, 4)" />     <xsl:variable name="month" select="substring($date, 6, 2)" />     <xsl:variable name="day" select="substring($date, 9, 2)" />      <xsl:variable name="hour" select="substring($time, 1, 2)" />     <xsl:variable name="minute" select="substring($time, 4, 2)" />     <xsl:variable name="second" select="substring($time, 7)" />      <xsl:variable name="a" select="floor((14 - $month) div 12)"/>     <xsl:variable name="y" select="$year + 4800 - $a"/>     <xsl:variable name="m" select="$month + 12*$a - 3"/>         <xsl:variable name="jd" select="$day + floor((153*$m + 2) div 5) + 365*$y + floor($y div 4) - floor($y div 100) + floor($y div 400) - 32045" />      <xsl:variable name="total-seconds" select="86400*$jd + 3600*$hour + 60*$minute + $second + 19800" />      <xsl:variable name="new-jd" select="floor($total-seconds div 86400)"/>       <xsl:variable name="new-hour" select="floor($total-seconds mod 86400 div 3600)"/>     <xsl:variable name="new-minute" select="floor($total-seconds mod 3600 div 60)"/>     <xsl:variable name="new-second" select="$total-seconds mod 60"/>      <xsl:variable name="f" select="$new-jd + 1401 + floor((floor((4 * $new-jd + 274277) div 146097) * 3) div 4) - 38"/>     <xsl:variable name="e" select="4*$f + 3"/>     <xsl:variable name="g" select="floor(($e mod 1461) div 4)"/>     <xsl:variable name="h" select="5*$g + 2"/>     <xsl:variable name="d" select="floor(($h mod 153) div 5 ) + 1"/>     <xsl:variable name="m" select="(floor($h div 153) + 2) mod 12 + 1"/>     <xsl:variable name="y" select="floor($e div 1461) - 4716 + floor((14 - $m) div 12)"/>      <xsl:value-of select="concat($y, format-number($m, '-00'), format-number($d, '-00'))"/>     <xsl:text>t</xsl:text>     <xsl:value-of select="concat(format-number($new-hour, '00'), format-number($new-minute, ':00'), format-number($new-second, ':00.###'))"/>     <xsl:text>+05:30</xsl:text> </xsl:template> 

example of call:

xml

<datetime>2016-05-31t19:45:15.123z</datetime> 

xslt

<xsl:template match="datetime">     <xsl:copy>         <xsl:call-template name="utc-to-indian">             <xsl:with-param name="datetime" select="."/>         </xsl:call-template>     </xsl:copy> </xsl:template>   

result

<?xml version="1.0" encoding="utf-8"?> <datetime>2016-06-01t01:15:15.123+05:30</datetime> 

Popular posts from this blog

php - How should I create my API for mobile applications (Needs Authentication) -

5 Reasons to Blog Anonymously (and 5 Reasons Not To)

Google AdWords and AdSense - A Dynamic Small Business Marketing Duo