2013-06-12 129 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

在你的情况下,这意味着你不应该尝试通过应用任意间隔来修复日期,而是在最后一步(输出)中使用日期格式化程序。