iOS时间日期获取的bug:formatter.dateFormat = "YYYY-MM-dd HH:mm:ss"

39 阅读1分钟

先上代码: 在2025年12月28日-------12月31号这几天天内执行如下代码:

NSDate *currentDate =[NSDate date];//获取当前时间,目期NSDateFormatter *dateFormatter =[[NSDateFormatter alloc] init];// 创建一个时间格式化对象

//设定时间格式,这里可以设置成自己需要的格式

[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];

NSString *dateString = [dateFormatter stringFromDate:currentDate];//将时间转化成字符串

NSLog(@"todo- dateString:%o",datestring); return dateString;

结果竟然是: todo- dateString:2026-12-31 11:05:25 提前过元旦了。???

截屏2025-12-31 11.06.45.png 截屏2025-12-31 11.06.33.png 群友给出: 很经典的一个🌰啊,大写只有很特殊的场景才按周的年份

// 1. ISO 8601 周日期格式 formatter.dateFormat = "YYYY-'W'ww" let isoWeek = formatter.string(from: date1) print(isoWeek) // "2024-W01" 表示2024年第1周

// 2. 财务年度、学校学年等基于周的系统 // 例如:2023-W53 表示2023年的第53周

// 3. 某些国家/地区的行业标准 // 日本、北欧国家的部分行业使用

代码不规范,欲哭2行泪 平时好好,的 快2026了 导致的?YYYY的年份 这个月才爆发的

截屏2025-12-31 11.10.31.png

WechatIMG1961.jpg

截屏2025-12-31 11.12.54.png