我知道我可以通過[NSDate date];
弄清楚今天的日期,但我會如何找出一週的今天一天,像週六,日等如何使用NSDate從今天的日期查找週日?
我知道%w
可以NSDateFormatter
使用,但我不知道知道使用它。
我知道我可以通過[NSDate date];
弄清楚今天的日期,但我會如何找出一週的今天一天,像週六,日等如何使用NSDate從今天的日期查找週日?
我知道%w
可以NSDateFormatter
使用,但我不知道知道使用它。
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]];
(如果你沒有得到正確的答案,請檢查您是否輸錯NSCalendarUnitWeekday
與像NSCalendarUnitWeekdayOrdinal
一週相關部件等)
斯威夫特3:
let weekday = Calendar.current.component(.weekday, from: Date())
// 1 = Sunday, 2 = Monday, etc.
非常感謝肯尼。這工作完美。 – 2010-03-17 21:33:14
comp weekday返回一個虛幻的巨大數字。 。 。 – coolcool1994 2013-06-02 11:46:06
@ coolcool1994你可能會使用'NSWeekCalendarUnit' insted'NSWeekdayCalendarUnit' – enadun 2013-06-05 09:28:15
如果有人對Swift解決方案感興趣,請使用:
import Foundation
let weekday = NSCalendar.current.component(.weekday, from: Date())
print(weekday) // => prints the weekday number 1-7 (Sunday through Saturday)
查看demo。
更新:固定在斯威夫特工作爲iOS 8
NSCalendar* currentCalendar = [NSCalendar currentCalendar];
NSDateComponents* dateComponents = [currentCalendar components:NSWeekdayCalendarUnit fromDate:[NSDate date]];
return [dateComponents weekday];
工作日是一個巨大的#?! – 2016-01-07 15:53:58
可悲的是,這個答案對我來說不起作用。 – Suhaib 2016-10-05 17:10:42
@Suhaib答案更新以匹配最新的Swift版本。感謝提到這個問題。 – 2016-10-06 05:34:11
這是更新的版本有效
NSCalendarUnit dayOfTheWeek = [[NSCalendar currentCalendar] component:NSCalendarUnitWeekday fromDate:yourDate];
較短的版本3
的可能的複製[我如何獲得可可觸摸星期幾?](http://stackoverflow.com/questions/4269093/how-do-i-get-the-day-of-the-week-with-cocoa-touch) – Suhaib 2016-10-05 04:08:02