如何将此格式mm / dd / yy转换为yyyy-mm-dd并在xslt中添加hh:mm:ss

时间:2018-12-11 20:51:22

标签: xslt

我想知道是否有人可以提供帮助。我正在努力转换下面的日期。有没有办法将日期从mm / dd / yy转换为yyyy-mm-dd并在xslt中添加hh:mm:ss?

这是我当前输入的XML。我正在尝试转换“ DateofService”。服务日期将始终为mm / dd / yy,而没有hh:mm:ss。

                              <?xml version="1.0"?>
                             -<BCBSFMsg>
                               <BCBSFMsgHeader/>
                              -<BCBSFBody>
                               -<EIPMsg ImageType="PAPER"  MsgType="DocumentNotify">
                                       <ImageId>12344</ImageId>
                                       <FileExtension>TIF</FileExtension>
                                     <DateofService>11/27/18</DateofService>
                                                 <EIPMsg>
                                           </BCBSFMsg>

当前,这是我在xslt中的查询:

<xsl:variable name="Date">
        <xsl:variable name="sqlXref"> 
          SELECT CONVERT(CHAR(19),ai.ADDLINFO_INDEX_15, 101) + '00:00:00' AS 'ServiceFromDate' FROM   ADDITIONAL_INFORMATION ai with (nolock)  INNER JOIN IMAGES_DETAIL id with (nolock) WHERE id.IMAGE_ID = &apos;<xsl:value-of select="$IMAGE_ID"/>&apos;
         </xsl:variable>
        <xsl:value-of select="env:ExecuteScalar($provider, $connStr, $sqlXref)"/>
  </xsl:variable>

我正在元素中传递变量$Date

<xsl:element name ="DateofService">
<xsl:value-of select="$Date"/>
</xsl:element>  

请告知。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您的输入XML包含:

<DateofService>11/27/18</DateofService>

然后是模板:

<xsl:template match="DateofService">
    <xsl:copy>
        <xsl:text>20</xsl:text>
        <xsl:value-of select="substring-after(substring-after(., '/'), '/')"/>
        <xsl:value-of select="format-number(substring-before(., '/'), '-00')"/>
        <xsl:value-of select="format-number(substring-before(substring-after(., '/'), '/'), '-00')"/>
        <xsl:text> 00:00:00</xsl:text>
    </xsl:copy>
</xsl:template>

将返回:

<DateofService>2018-11-27 00:00:00</DateofService>

请注意,这是假设您的所有约会都在21世纪。