最近在网上发现了一个有趣的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: 毫秒