我知道我可以通过[NSDate date];
找出今天的日期,但是我怎么能在星期六,星期五等今天的某一天找到它。
我知道%w
可以使用NSDateFormatter
,但我不知道使用它。
答案 0 :(得分:75)
NSCalendar* cal = [NSCalendar currentCalendar];
NSDateComponents* comp = [cal components:NSCalendarUnitWeekday fromDate:[NSDate date]];
return [comp weekday]; // 1 = Sunday, 2 = Monday, etc.
如果您只需要没有其他组件的工作日(需要iOS 8 + ),请参阅@HuguesBR的答案。
NSInteger weekday = [[NSCalendar currentCalendar] component:NSCalendarUnitWeekday
fromDate:[NSDate date]];
(如果您没有得到正确的答案,请检查您是否错误键入NSCalendarUnitWeekday
与其他与周相关的组件,例如NSCalendarUnitWeekdayOrdinal
等。
斯威夫特3:
let weekday = Calendar.current.component(.weekday, from: Date())
// 1 = Sunday, 2 = Monday, etc.
答案 1 :(得分:3)
如果有人对Swift解决方案感兴趣,请使用:
import Foundation
let weekday = NSCalendar.current.component(.weekday, from: Date())
print(weekday) // => prints the weekday number 1-7 (Sunday through Saturday)
请参阅demo。
更新:修复为在Swift 3中工作
答案 2 :(得分:1)
这是适用于iOS 8的更新版本
NSCalendar* currentCalendar = [NSCalendar currentCalendar];
NSDateComponents* dateComponents = [currentCalendar components:NSWeekdayCalendarUnit fromDate:[NSDate date]];
return [dateComponents weekday];
答案 3 :(得分:1)
更短的版本
NSCalendarUnit dayOfTheWeek = [[NSCalendar currentCalendar] component:NSCalendarUnitWeekday fromDate:yourDate];
答案 4 :(得分:0)
jdk.http.ntlm.transparentAuth=trustedHosts