Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XSL中的Java日期计算_Java_Xml_Xslt - Fatal编程技术网

XSL中的Java日期计算

XSL中的Java日期计算,java,xml,xslt,Java,Xml,Xslt,我一直在努力弄清楚如何用Java和XSLT完成一个看似简单的日期计算,所以我放下了顽固的帽子,谦卑地开始提问。我对Java和XSL没有太多的经验,我正在逐步了解它 到目前为止,我成功地将当前日期格式化为DDMMM格式,如下所示 <xsl:value-of select="java:format(java:text.SimpleDateFormat.new('ddMMM'), java:util.Date.new())"/> 现在,我真正需要做的是得到前几天的日期,即今天-1 这使

我一直在努力弄清楚如何用Java和XSLT完成一个看似简单的日期计算,所以我放下了顽固的帽子,谦卑地开始提问。我对Java和XSL没有太多的经验,我正在逐步了解它

到目前为止,我成功地将当前日期格式化为DDMMM格式,如下所示

<xsl:value-of select="java:format(java:text.SimpleDateFormat.new('ddMMM'),
 java:util.Date.new())"/>
现在,我真正需要做的是得到前几天的日期,即今天-1

这使用XMLVersion=1.0,我无法控制名称空间或样式表。这需要完全通过Java引擎来完成

我在这方面搜索并找到了一些资源,但是没有一个有效,因为他们认为我有能力更改名称空间等


在上下文中,我试图在SAS Digital Marketing Studio中实现这一点,您可以将昨天的时间戳作为长参数传递给Date构造函数

<xsl:variable name="currentTimeStamp" select="current-dateTime()-24*60*60*1000"/>
<xsl:value-of select="java:format(java:text.SimpleDateFormat.new('ddMMM'),
                      java:util.Date.new({$currentTimeStamp})"/>

您需要告诉我们您使用的是哪个XSLT处理器。我怀疑Xalan,但那只是猜测。如果您使用的是Saxon,那么您当然可以免费获得所有XSLT2.0日期/时间处理,而不需要调用Java。简单的日期算法就成了一个小问题。@MichaelKay OP指定这需要纯用Java引擎完成,可能是一个however或w/e。@MichaelKay软件使用Xalan,是的,我希望它是XSLT2.0。这需要用Java引擎来完成。为什么?考虑到Xalan支持Java,并不是说使用Java有什么问题,但您也可以在XSLT中这样做,只需Xalan支持的部分EXSLT的一点帮助。感谢Jean François,这似乎是一个非常有前途的解决方案。但不幸的是,当我将参数传递给构造函数时,我根本没有得到任何输出。如果软件出现某种错误,那就太好了,但我只能看到它无法编译。在这种情况下,它不是。还有别的办法吗?