【发布时间】:2011-01-28 18:58:40
【问题描述】:
我知道我可以通过[NSDate date]; 找出今天的日期,但我如何才能知道今天是星期几,比如星期六、星期五等。
我知道%w可以在NSDateFormatter中使用,但不知道怎么用。
【问题讨论】:
-
@Suhaib 仅供参考!!该链接比这个问题更新。
标签: objective-c nsdate
我知道我可以通过[NSDate date]; 找出今天的日期,但我如何才能知道今天是星期几,比如星期六、星期五等。
我知道%w可以在NSDateFormatter中使用,但不知道怎么用。
【问题讨论】:
标签: objective-c nsdate
let today = Date()
let day = Calendar.current.dateComponents([.weekday], from: today).weekday
if ( day == 5)
{
yourText.text = "Thursday"
}
【讨论】:
如果有人对 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 中使用
【讨论】:
NSCalendar* cal = [NSCalendar currentCalendar];
NSDateComponents* comp = [cal components:NSCalendarUnitWeekday fromDate:[NSDate date]];
return [comp weekday]; // 1 = Sunday, 2 = Monday, etc.
如果您只需要没有其他组件的工作日,请参阅@HuguesBR 的回答(需要 iOS 8+)。
NSInteger weekday = [[NSCalendar currentCalendar] component:NSCalendarUnitWeekday
fromDate:[NSDate date]];
(如果您没有得到正确答案,请检查您是否将NSCalendarUnit<b>Weekday</b> 与其他与周相关的组件(如NSCalendarUnit<i>WeekdayOrdinal</i> 等)打错了)
斯威夫特 3:
let weekday = Calendar.current.component(.weekday, from: Date())
// 1 = Sunday, 2 = Monday, etc.
【讨论】:
NSWeekCalendarUnit insted of NSWeekdayCalendarUnit
短版
NSCalendarUnit dayOfTheWeek = [[NSCalendar currentCalendar] component:NSCalendarUnitWeekday fromDate:yourDate];
【讨论】:
这是适用于 iOS 8 的更新版本
NSCalendar* currentCalendar = [NSCalendar currentCalendar];
NSDateComponents* dateComponents = [currentCalendar components:NSWeekdayCalendarUnit fromDate:[NSDate date]];
return [dateComponents weekday];
【讨论】: