如何在FreeMarker中基于日期获取ISO 8601年度周数
在FreeMarker中获取日期的年度周数
FreeMarker没有直接提供获取年度周数的内置工具,但可以通过日期格式化语法轻松实现需求。
实现步骤
- 正确解析日期字符串:将输入的字符串日期转换为FreeMarker的
date类型。如果日期格式(如dd.MM.yyyy)与默认解析格式不符,需指定解析模式:<#assign aDate = theDate?date("dd.MM.yyyy")> - 格式化输出周数:使用
?string配合特定模式字符串生成目标格式:${aDate?string["'Week' ww 'of' yyyy"]}
格式符号说明
ww:两位数字的年度周数(若允许单数字周数,改用w)。yyyy:四位完整年份。- 单引号包裹的文本(如"Week"和"of")会直接输出,不会被解析为格式占位符。
示例验证
输入日期字符串07.03.2023,执行上述代码后将输出:Week 10 of 2023,完全匹配需求。
补充说明
周数计算遵循ISO标准:以周一为一周的第一天,当年第一周需包含至少4天。
内容的提问来源于stack exchange,提问作者tobor159
相关产品推荐
相关产品推荐

