这是一种常见的 ISO 问题,我知道这可能是一场噩梦。 Xpath 有一个有用的功能
format-date
其中有令人难以置信的参数,我将从中计算出
https://www.w3.org/TR/xpath-functions-31/#rules-for-datetime-formatting
但明显的问题是我的一周从周六开始。
短期解决方案是在日期上添加两天,然后获取年、周、日数...这至少会使周对齐,并且 90% 以上的时间它们是正确的,遗憾的是,这不仅仅是一年中第一周/最后一周的边缘情况,因为如果第一周数字错误,那么该年的所有周数都将是错误的。
那么,我该如何获得
weeknumber
weekdaynumber
weekyear
如果我的一周从周六开始?
https://www.w3.org/TR/xpath-functions-31/#rules-for-datetime-formatting中的文档(某处)说:
语言用于选择合适的语言依赖 形式:所以你应该尝试指定语言。请注意,对各种语言的支持可能会根据 XSLT/XQuery/XPath 处理器版本和版本的不同而有所不同(我认为 Saxon PE/EE 集成 ICU 比 HE(基于 Java JRE 库)具有更广泛的支持)。名称(例如月份)
以单词或序数表示的数字(二十、二十、二十)
小时惯例(0-23 vs 1-24,0-11 vs 1-12)
一周的第一天,一年的第一周
在适当的情况下,这一选择还可以考虑以下价值: $place 参数,尽管这不应该用于覆盖 语言或指定为该语言一部分的任何子语言 争论。