Objective c 给定周的第一个日期(NSDate)
我有一个整数表示的周数,我想得到该周的第一个日期(NSDate值) 例如: 2011年第21周的第一个日期(星期日)是2011年5月22日 我正在尝试使用NSCalendar和NSDateComponents来实现这一点。如果有人知道如何做到这一点,非常感谢你的帮助。尝试以下方法:Objective c 给定周的第一个日期(NSDate),objective-c,date,Objective C,Date,我有一个整数表示的周数,我想得到该周的第一个日期(NSDate值) 例如: 2011年第21周的第一个日期(星期日)是2011年5月22日 我正在尝试使用NSCalendar和NSDateComponents来实现这一点。如果有人知道如何做到这一点,非常感谢你的帮助。尝试以下方法: NSDate *now = [NSDate date]; NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGrego
NSDate *now = [NSDate date];
NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDateComponents *comp = [gregorian components:NSYearCalendarUnit fromDate:now];
[comp setWeekday:1];
[comp setWeek: 21];
NSDate *resultDate = [gregorian dateFromComponents:comp];
尝试以下方法:
NSDate *now = [NSDate date];
NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDateComponents *comp = [gregorian components:NSYearCalendarUnit fromDate:now];
[comp setWeekday:1];
[comp setWeek: 21];
NSDate *resultDate = [gregorian dateFromComponents:comp];
展示你做了什么,这样我们就可以用更少的代码来看看这是否可行。但使用NSCalendar和NSDateComponents是完成该任务的正确方法Vladimir,实际上我正试图得到这个结果,所以我没有完整的代码。不管怎样,我正在尝试,如果找到了,我会用代码编辑我的问题。展示你做了什么,这样我们就可以用更少的代码来看看这是否可行。但使用NSCalendar和NSDateComponents是完成该任务的正确方法Vladimir,实际上我正试图得到这个结果,所以我没有完整的代码。不管怎样,我正在尝试,如果找到了,我会用代码编辑我的问题。谢谢你的帮助-结果是2011-05-21 18:30:00+0000-21日是星期六,应该是22日,不是吗我正在模拟器上运行。@Viraj,这是因为NSDate将日期存储在GMT时区,当您打印它时,NSLog会将您的本地时区记入帐户谢谢您的帮助-结果是2011-05-21 18:30:00+0000-21号是星期六,应该是22号,不是吗我正在模拟器上运行。@Viraj,这是因为NSDate将日期存储在GMT时区,当您打印它时,NSLog将考虑您的本地时区