2013-06-12 63 views
1

我正在使用NSDate,我是新的。我有開始日期和結束日期,從用戶獲得。它是2013-01-01 and 2013-02-19。當我嘗試在控制檯中顯示時,它顯示我2012-12-31 18:30:00 +0000。所以,你可以說是5:30 gap.So我加入的時間間隔將NSDate轉換爲GMT時區

startDate = [aStartdDate dateByAddingTimeInterval:19800]; 
endDate = [aEndDate dateByAddingTimeInterval:19800]; 

我的問題是,當我嘗試使用2012-12-31 18:30:00 +0000日期以獲得當前星期,它顯示我correctly.But當我使用2013-02-01 00:00:00 +0000迄今爲止,向我顯示月的總週數。請幫助我。謝謝你。

+0

你如何獲得週數你可以發佈該代碼? – 2013-06-12 05:02:16

+0

使用此代碼NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSRange weekRange = [calendar rangeOfUnit:NSWeekCalendarUnit inUnit:NSMonthCalendarUnit forDate:date]; int weeks = week range.length; – user2470111

+0

你需要在腦海中分開'NSDate'和時區的概念,它們是**沒有連接** – borrrden

回答

1

時區不應該是你模型的一部分 - 它們是一個演示問題。
你的模型應該總是使用一個公共的默認時區。如果您向用戶展示日期,請應用使用specific timezoneNSDateFormatter

在你的情況下,這意味着你不應該嘗試通過應用任意間隔來修復日期,而是在最後一步(輸出)中使用日期格式化程序。