2013-05-31 7 views
8

में स्ट्रिंग टू डेट को पार्स करने के लिए कैसे करें 30042013 (30 अप्रैल 2013) जैसे तारों को एक प्रारूप प्रारूप में परिवर्तित करना संभव है?xslt 2.0

तो मैं format-date

उत्तर

6

fn:dateTime($arg1 as xs:date?, $arg2 as xs:time?) जैसे कार्यों में बाद में इसका इस्तेमाल करने के लिए xs:dateTime अपने तर्कों में परिवर्तित कर देंगे कर सकते हैं।

बस fn:substring() और fn:concat() का उपयोग प्रासंगिक भागों काटकर बाहर निकाला और गुजर fn:dateTime है कि इससे पहले कि yyyy-mm-dd के रूप में उन्हें शामिल होने के लिए।

10

तरह Tomalak कहा, तुम substring() और concat() उपयोग कर सकते हैं एक स्ट्रिंग आप एक xs:date() के रूप में कास्ट कर सकते हैं का निर्माण करने के

उदाहरण (यह नहीं लग रहा है जैसे आप एक dateTime चाहते हैं।):

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xsl:output method="text"/> 
    <xsl:strip-space elements="*"/> 

    <xsl:variable name="in" select="'30042013'"/> 

    <xsl:template match="/"> 
     <xsl:variable name="date" select="xs:date(concat(
      substring($in,5,4),'-', 
      substring($in,3,2),'-', 
      substring($in,1,2)))"/> 
     <xsl:value-of select="format-date($date,'[MNn] [D], [Y]')"/> 
    </xsl:template> 

</xsl:stylesheet> 

उत्पादन (किसी भी एक्सएमएल इनपुट के साथ)

April 30, 2013