我试图在XSLT2.0 / XPath2.0中解析日期字符串。问题是,日期不是标准格式,因此需要计算,而不仅仅是字符串操作。具体而言,日期的格式为“yyyyDDD”(是的,这是正确的,一年后面是一年中的某一天)。
例如,2013051 = 2013年2月20日
我一直在研究这个问题,并找到了许多对我没有帮助的答案,例如:
Java方法Date.parse()正是我需要的东西,我发现很难相信在XSLT中没有标准的处理日期的方法。
答案 0 :(得分:3)
XPath 2没有特殊的解析函数,但它有许多日期时间计算的函数。
因此,您可以为一年中的第一天创建日期,然后为其添加日偏移量。如果输入字符串在$input
中,只需在XSLT中插入此xpath表达式:
xs:date(concat(substring($input, 1, 4), "-01-01")) + xs:dayTimeDuration(concat("P",number(substring($input,5, 3)) - 1, "D"))