iOS 12 stringFromDate 方法 returns 不正确的值
iOS 12 stringFromDate method returns incorrect value
在 iOS 12 中,我注意到 [NSDateFormatter stringFromDate]
方法 returns 在模拟器上的值不正确 iPad,但在物理 iPad.
示例代码:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"c"];
NSDate *currentDate = [NSDate date];
// Returns correct value on both physical and simulator iPads (eg. Fri Oct 19 15:39:53 2018)
NSString *currentDateAsString = [dateFormat stringFromDate:currentDate];
// Physical iPad: 5 (correct)
// Simulator iPad: 6 (incorrect)
两个 iPad 具有相同的 date/time 设置(例如,相同的时区)。这个错误的原因是什么?
在您的真实 iPad 和模拟器 iPad 上检查 the first weekday 以查看它们是否匹配:
NSCalendar.current.firstWeekday
并将该值纳入您从日期格式化程序中获取的工作日的计算中。
一周的第一天 iOS 取决于区域设置。在真实和模拟器 iPad 上仔细检查设置 -> 常规 -> 语言和区域 -> 区域中的设置。此外,也可能值得在系统偏好设置 -> 语言和地区 -> 一周的第一天中检查 Mac 上的第一天。
在 iOS 12 中,我注意到 [NSDateFormatter stringFromDate]
方法 returns 在模拟器上的值不正确 iPad,但在物理 iPad.
示例代码:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"c"];
NSDate *currentDate = [NSDate date];
// Returns correct value on both physical and simulator iPads (eg. Fri Oct 19 15:39:53 2018)
NSString *currentDateAsString = [dateFormat stringFromDate:currentDate];
// Physical iPad: 5 (correct)
// Simulator iPad: 6 (incorrect)
两个 iPad 具有相同的 date/time 设置(例如,相同的时区)。这个错误的原因是什么?
在您的真实 iPad 和模拟器 iPad 上检查 the first weekday 以查看它们是否匹配:
NSCalendar.current.firstWeekday
并将该值纳入您从日期格式化程序中获取的工作日的计算中。
一周的第一天 iOS 取决于区域设置。在真实和模拟器 iPad 上仔细检查设置 -> 常规 -> 语言和区域 -> 区域中的设置。此外,也可能值得在系统偏好设置 -> 语言和地区 -> 一周的第一天中检查 Mac 上的第一天。