[英]How to get a week number from NSDate consistently in all iOS versions?
我使用以下內容從NSDate獲取周數:
[[calendar components: NSWeekCalendarUnit fromDate:date] week]
不幸的是,我在不同的iOS版本中獲得了不同的值。 iOS 4. *和5返回的值相差1.有沒有辦法一致地檢索周數?
由於iOS5 NSCalender似乎默認定義為ISO 8601。 您需要使用方法“setMinimumDaysInFirstWeek”設置日歷以獲得預期的周數結果。
[yourCalender setMinimumDaysInFirstWeek:4];
在這種情況下,“4”表示星期四。
http://en.wikipedia.org/wiki/ISO_week_date “一年的第一周是包含一年中第一個星期四的一周。”
我不知道為什么它在iOS5中沒有被定義為“4”默認值。 只是其中一個奇怪的“錯誤”我猜;)
是的,這將適用於iOS 4和5。
iOS5似乎有誤,錯誤ID#10412573。
簡介:iOS5 NSDateComponents周報告了NSWeekCalendarUnit和NSWeekOfYearCalendarUnit的錯誤周。
重現步驟:
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *date = [NSDate date];
NSLog(@"week: %i", [[calendar components: NSWeekCalendarUnit fromDate:date] week]);
NSLog(@"week: %i", [[calendar components: NSWeekOfYearCalendarUnit fromDate:date] weekOfYear]);
預期結果:iOS4和iOS5上的同一周數。 2011年11月8日,本周應為45周。
實際結果:iOS5上的相同周數。 2011年11月8日,本周應為46周。
回歸:iOS4是正確的,iOS5不正確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.