我正在尝试解析 XSLT2.0/XPath2.0 中的日期字符串。问题是,日期不是标准格式,因此需要计算,而不仅仅是字符串操作。具体来说,日期以“yyyyDDD”的模式出现(是的,没错,年份后面是一年中的某一天)。
例如,2013051 == 2013 年 2 月 20 日
我一直在研究这个问题一段时间,并且发现了许多对我没有帮助的答案,例如:
- 用子字符串解析日期:我需要从一年中的某一天开始计算月份和日期
- date:parse-date: Saxon 不支持(我目前正在使用 SaxonEE 的评估版,如果可以添加对这个扩展功能的支持我愿意听!)
- 使用脚本:我试图在 XSLT 中远离 MSXML/Javascript 以简化代码,如果可以避免的话,我想避免回到那里
- 手动计算日期:这些天,你需要一个日期方面的博士学位才能把它们弄好……有太多的边缘案例让我觉得在这里重新发明轮子是安全的
- 以标准格式将日期传递给 XSLT:回到经典程序员的困境,我无法控制此 XSLT 的输入。
Java 方法 Date.parse()正是我在这里所需要的,而且我发现很难相信在 XSLT 中没有处理日期的标准方法。