__timeShift函数计算7天前日期异常,年份未正确回退求助
JMeter __timeShift函数日期计算错误解决方法
我用__timeShift函数的写法是这样的:
${__timeShift(YYYY-MM-dd hh:mm,,-P7D,,)}
当前日期是2023年1月3日时,我想要的结果是2022-12-27 02:13,但实际输出却是2023-12-27 02:13;要是当前日期是2023年1月10日,预期结果应该是2023-01-03 02:13,也就是取当前日期的前7天,不知道怎么设置函数的格式和参数才能得到正确日期,求帮忙解决。
问题根源在日期格式符上:你用的YYYY是周年(Week Year),不是自然年的年份。周年是按每年第一个星期一开始计算的,年初的日期很容易出现年份计算错误的情况。
只要把格式里的YYYY改成小写的yyyy就行,yyyy代表自然年的年份,完全符合你的需求。修正后的函数写法:
${__timeShift(yyyy-MM-dd hh:mm,,-P7D,,)}
验证效果:
- 2023年1月3日计算前7天,会得到
2022-12-27 02:13,和预期一致 - 2023年1月10日计算前7天,会得到
2023-01-03 02:13,符合预期
额外提醒:如果需要24小时制的时间,建议把hh换成HH,避免上午下午的时间混淆,比如:
${__timeShift(yyyy-MM-dd HH:mm,,-P7D,,)}
内容的提问来源于stack exchange,提问作者pramod_pams
相关产品推荐
相关产品推荐

