objective-c - NSDateComponents 工作日不显示正确的工作日?

标签 objective-c ios ios5 nsdate nsdatecomponents

我得到了一个 NSDate,例如 1/6 -12(星期五),并试图找出它是星期几。我的一周从星期一开始,所以星期五应该是工作日 5。

    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    [calendar setFirstWeekday:2];
    NSDateComponents *components = [calendar components:NSWeekdayCalendarUnit fromDate:firstOfJulyDate];
    NSLog(@"weekday %i",components.weekday);

输出:工作日 6

无论我将 setFirstWeekday 设置为什么,输出始终为 6。 我做错了什么?

最佳答案

尝试做这样的事情:

NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
[gregorian setFirstWeekday:2]; // Sunday == 1, Saturday == 7
NSUInteger adjustedWeekdayOrdinal = [gregorian ordinalityOfUnit:NSWeekdayCalendarUnit inUnit:NSWeekCalendarUnit forDate:[NSDate date]];
NSLog(@"Adjusted weekday ordinal: %d", adjustedWeekdayOrdinal);

关于objective-c - NSDateComponents 工作日不显示正确的工作日?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11019761/

相关文章:

ios - 我需要检测某个 View 上的触摸

iphone - 应用内购买失败的交易

ios - 将 MKCooperativeRegion 视为矩形是否会再次困扰我?

objective-c - 在 UITabBarController 中重新排序 View Controller ,所有这些都在 Storyboard 中定义

iphone - 键盘出现时 Xcode/iOS5 : Move UIView up,

ios - parent 和 child 调用键盘通知查看两者

objective-c - 在 Unix 中使用 double ?

ios - 在 Swift 单元测试中向下转换 NSManagedObjects 时出现命名空间问题

objective-c - 如何在两个 UIView 之间切换?

ios - 如何录制和回放ios上的操作?我不是说屏幕录制