如何使用NSDate从今天的日期找到工作日?

Vib*_*yal 27 objective-c nsdate

我知道我可以弄清楚今天的日期,[NSDate date];但我怎么能找到今天的星期几,如星期六,星期五等.

我知道%w可以使用NSDateFormatter,但我不知道使用它.

ken*_*ytm 75

NSCalendar* cal = [NSCalendar currentCalendar];
NSDateComponents* comp = [cal components:NSCalendarUnitWeekday fromDate:[NSDate date]];
return [comp weekday]; // 1 = Sunday, 2 = Monday, etc.
Run Code Online (Sandbox Code Playgroud)

如果您只需要没有其他组件的工作日(需要iOS 8+),请参阅@HuguesBR的答案.

NSInteger weekday = [[NSCalendar currentCalendar] component:NSCalendarUnitWeekday 
                                                   fromDate:[NSDate date]];
Run Code Online (Sandbox Code Playgroud)

(如果您没有得到正确的答案,请检查您是否错误地使用其他与周相关的组件,例如,等等)NSCalendarUnitWeekdayNSCalendarUnitWeekdayOrdinal


斯威夫特3:

let weekday = Calendar.current.component(.weekday, from: Date())
// 1 = Sunday, 2 = Monday, etc.
Run Code Online (Sandbox Code Playgroud)

  • comp weekday返回一个不真实的,巨大的数字... (5认同)
  • 在iOS8上使用NSCalendarUnitWeekday而不是已弃用的NSWeekdayCalendarUnit.答案很好但是很好.谢谢 (4认同)
  • @ coolcool1994你可以使用`NSWeekCalendarUnit` insted of NSWeekdayCalendarUnit` (2认同)