到年底才会出现的BUG-日期格式‘YYYY’

本文探讨了在处理日期和时间戳转换时遇到的一个常见误区,即'YYYY'与'yyyy'的区别。通过实例说明了当周跨越年份时,'YYYY'可能导致的日期混乱,并推荐使用标准的'yyyy-MM-dd'格式。

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

最近在网上发现了一个有趣的BUG,说的是在2019-12-31日,上传的时间都是2020-12-31。

通过排查呢,发现是时间戳转换的问题。在year转换时,用的是‘YYYY’,官方文档用的‘yyyy’。

百度Google了一波,发现YYYY是以周来计算年的,意思是当天所在周属于的年份,一周从周日开始算计算,周六结束,只要本周跨年,那么这一周就算下一年的。

也就是说:年份如果用Y会是这周的年份,y才是标准的年份。以后转换日期格式的时候记得还是用“yyyy-MM-dd”这种格式吧

使用DateFormatter转换时间格式,需要的参数如下:
G: 公元时代,例如AD公元
yy: 年的后2位
yyyy: 完整年
MM: 月,显示为1-12
MMM: 月,显示为英文月份简写,如 Jan
MMMM: 月,显示为英文月份全称,如 Janualy
dd: 日,2位数表示,如02
d: 日,1-2位显示,如 2
EEE: 简写星期几,如Sun
EEEE: 全写星期几,如Sunday
aa: 上下午,AM/PM
H: 时,24小时制,0-23
K:时,12小时制,0-11
m: 分,1-2位
mm: 分,2位
s: 秒,1-2位
ss: 秒,2位
S: 毫秒

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值