java日期Date转换增加1年:SimpleDateFormat中YYYY和yyyy的区别

本文探讨了在Java中使用SimpleDateFormat时,"YYYY"和"yyyy"进行日期转换的区别。"YYYY"代表基于周的年,可能导致跨年问题,而"yyyy"则表示基于天的年。例如,2021年12月27日(周一)在"YYYY"格式下会显示为2022年。因此,建议在日期转换时使用"yyyy"以避免混淆。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先来看用"YYYY"和"yyyy"进行时间格式转换的结果
(当前时间是 12月31日)
可以看到用YYYY比yyyy转换的时间多了1年
在这里插入图片描述

所以来研究一下Y和y
y:year,表示“年”,基于天的年
Y:week year ,表示“周年”,基于周的年

According to the Javadoc:
A week year is in sync with a WEEK_OF_YEAR cycle. All weeks between the first and last weeks (inclusive) have the same week year value. Therefore, the first and last days of a week year may have different calendar year values.

举个栗子,2021年12月27日,周一,这周跨年了,所以这周的年份是2022年
总结:大家以后进行日期转换还是乖乖用yyyy吧~

ps:
SimpleDateFormat中字母和格式的对应表

字母 日期或时间元素 表示 示例
G Era 标志符 Text AD
Y
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值