给定一个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];
to:
[components setWeekday:[calendar firstWeekday]];
您还应该删除NSYearForWeekOfYearCalendarUnit
and NSWeekCalendarUnit
成分。
额外问题:“区域格式”应该是更改一周第一天的设置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)