我有一个XML文件,但没有太多信息。我想从以以下格式显示日期的节点中获取周号:YYYY-MM-DD
我想要以下内容:YYYY“ W” WW
W代表星期数,例如2019W20
我尝试了一些带有日期子字符串的代码,但是我得到的唯一结果是例如2019M04。所以我一年又一个月。这是合乎逻辑的,因为从中获取结果的节点中没有周数。我不知道如何从中获得周数。
<TimeInterval type="regular" billable="true">
<StartDateTime>2019-04-22T00:00:00Z</StartDateTime>
<EndDateTime>2019-04-28T00:00:00Z</EndDateTime>
<Duration>7.00</Duration>
<RateOrAmount currency="EUR" type="Hourly" multiplier="100.00">22.16</RateOrAmount>
<AdditionalData>
<CustomerReportingRequirements>
<PurchaseOrderLineItem>0</PurchaseOrderLineItem>
</CustomerReportingRequirements>
</AdditionalData>
</TimeInterval>
我希望或者我很愿意获得2019W17的结果,因为4月22日至4月28日是第17周
答案 0 :(得分:1)
EXSLT日期/时间库中有一个提供此功能的模板:请参见http://exslt.org/date/functions/week-in-year/date.week-in-year.template.xsl
要使用此功能:
public static void main(String[] args) {
ChangeID(id);
}
static String ChangeID(String id) {
Random RNG = new Random();
String nID = "";
try {
int number = Integer.parseInt(id.charAt(0) + "");
int numberNew = RNG.nextInt(number) + 1;
nID += "" + numberNew;
String sub = id.substring(1);
nID += sub;
int pos = nID.indexOf("R");
String left = nID.substring(0, pos);
String right = nID.substring(pos + 1);
nID = left + "rr" + right;
} catch (NumberFormatException e) {
}
return nID;
}
代码:
<xsl:include href="date.week-in-year.template.xsl"/>
其中<xsl:variable name="week-number">
<xsl:call-template name="date:week-in-year" xmlns:date="http://exslt.org/dates-and-times">
<xsl:with-param name="date-time" select="$input"/>
</xsl:call-template>
</xsl:variable>
是所提供的日期时间,格式为YYYY-MM-DD。