Có thể chuyển đổi các chuỗi như 30042013
(30 tháng 4 năm 2013) sang định dạng ngày không?Cách phân tích chuỗi thành ngày theo xslt 2.0
Vì vậy, tôi có thể sử dụng nó sau này trong các chức năng như format-date
Có thể chuyển đổi các chuỗi như 30042013
(30 tháng 4 năm 2013) sang định dạng ngày không?Cách phân tích chuỗi thành ngày theo xslt 2.0
Vì vậy, tôi có thể sử dụng nó sau này trong các chức năng như format-date
fn:dateTime($arg1 as xs:date?, $arg2 as xs:time?)
sẽ chuyển đổi đối số của nó để xs:dateTime
.
Chỉ cần sử dụng fn:substring()
và fn:concat()
để cắt các phần có liên quan và tham gia với chúng dưới dạng yyyy-mm-dd
trước khi chuyển đến fn:dateTime
.
Giống như Tomalak nói, bạn có thể sử dụng substring()
và concat()
để xây dựng một chuỗi, bạn có thể chọn vào vai một xs:date()
Ví dụ (Nó không âm thanh như bạn muốn có một 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>
tạo (với bất kỳ đầu vào XML nào)
April 30, 2013