给定一个 NSDate
,我如何在给定用户区域的情况下找到该日期所在周的第一天。例如,我听说有些国家/地区将星期一视为一周的第一天,而其他国家/地区则使用星期日。在第一种情况下我需要返回前一个星期一,但在后一种情况下我需要返回前一个星期日。
到目前为止,我的最大努力总是返回前一个星期天,无论应用的设备设置如何:
NSCalendar *calendar = [NSCalendar currentCalendar];
[calendar setLocale:[NSLocale currentLocale]];
NSDateComponents *components = [calendar components:NSYearForWeekOfYearCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSWeekdayCalendarUnit fromDate:originalDate];
[components setWeekday:1];
NSDate *firstDayOfWeek = [calendar dateFromComponents:components];
奖金问题:在 iOS 上,哪个设置会导致此问题?是“区域格式”吗?
最佳答案
尝试改变:
[components setWeekday:1];
到:
[components setWeekday:[calendar firstWeekday]];
您还应该删除 NSYearForWeekOfYearCalendarUnit
和 NSWeekCalendarUnit
组件。
奖励问题:“区域格式”应该是更改一周第一天的设置。
关于ios - 找到一周中依赖于语言环境的第一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23668942/