从格式日期获取年份、周数、周日数,但我的周从星期六开始

问题描述 投票:0回答:1

这是一种常见的 ISO 问题,我知道这可能是一场噩梦。 Xpath 有一个有用的功能

format-date

其中有令人难以置信的参数,我将从中计算出

https://www.w3.org/TR/xpath-functions-31/#rules-for-datetime-formatting

但明显的问题是我的一周从周六开始。

短期解决方案是在日期上添加两天,然后获取年、周、日数...这至少会使周对齐,并且 90% 以上的时间它们是正确的,遗憾的是,这不仅仅是一年中第一周/最后一周的边缘情况,因为如果第一周数字错误,那么该年的所有周数都将是错误的。

那么,我该如何获得

weeknumber
weekdaynumber
weekyear

如果我的一周从周六开始?

xslt-2.0 xslt-3.0 xpath-2.0
1个回答
0
投票

https://www.w3.org/TR/xpath-functions-31/#rules-for-datetime-formatting中的文档(某处)说:

语言用于选择合适的语言依赖 形式:

名称(例如月份)

以单词或序数表示的数字(二十、二十、二十)

小时惯例(0-23 vs 1-24,0-11 vs 1-12)

一周的第一天,一年的第一周

在适当的情况下,这一选择还可以考虑以下价值: $place 参数,尽管这不应该用于覆盖 语言或指定为该语言一部分的任何子语言 争论。

所以你应该尝试指定语言。请注意,对各种语言的支持可能会根据 XSLT/XQuery/XPath 处理器版本和版本的不同而有所不同(我认为 Saxon PE/EE 集成 ICU 比 HE(基于 Java JRE 库)具有更广泛的支持)。

© www.soinside.com 2019 - 2024. All rights reserved.