Ben*_*ard 4 cocoa-touch objective-c nsdate nsdatecomponents ios
给定一个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];
Run Code Online (Sandbox Code Playgroud)
奖金问题:在iOS上,哪个设置驱动这个?它是'地区格式'吗?
尝试改变:
[components setWeekday:1];
Run Code Online (Sandbox Code Playgroud)
至:
[components setWeekday:[calendar firstWeekday]];
Run Code Online (Sandbox Code Playgroud)
您还应该删除NSYearForWeekOfYearCalendarUnit
和NSWeekCalendarUnit
组件.
红利问题:"区域格式"应该是更改一周中第一天的设置.
归档时间: |
|
查看次数: |
1323 次 |
最近记录: |