如何根据日期获取周数所属的正确年份?
解决R语言中日期转周年份错误的问题
当使用strftime()的%Y-%V格式时,%Y取的是日期的日历年份,而非该周对应的实际年份,这就导致跨年周的年份显示错误——比如2024-12-30实际属于2025年第1周,但会返回2024-01。
正确的做法是用%G替代%Y,%G专门表示周所属的年份,配合%V(ISO标准周数)就能得到正确结果:
strftime(as.Date("2024-12-30"), "%G-%V") [1] "2025-01"
额外注意事项:
- 确保输入为
Date类型,若传入的是字符串,需先用as.Date()转换后再处理 - ISO周遵循的规则是:每周以周一为起始日,一年的第1周是包含当年第一个周四的那周,
%G和%V均遵循此标准
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

