Noo*_*ass 2 iphone nsdate nsdatecomponents ios
我开发了一个需要获得本周的应用程序.我试过这个:
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *dateString = @"1-1-2011";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comp = [gregorian components:NSWeekCalendarUnit fromDate:dateFromString];
NSLog(@"%d", comp.week);
[dateFormatter release];
}
Run Code Online (Sandbox Code Playgroud)
但它告诉我52.这实际上是一个错误的结果.拜托,建议我任何想法.提前致谢.
周日期取决于使用的编号标准.例如,ISO-8601标准将一年中的第1周定义为"年中第一个星期四的一周".
2011年1月1日是星期六,这意味着接下来的一周是2011年第1周,即2010年12月27日至2010年1月21日,第52周.
此外,还有几个不相容的标准,用于几周开始或结束以及一年中的周数如何.这使得周数成为指定日期范围的混乱方式,也是避免使用它们的最佳解决方案.
从文档到NSCalendar,似乎您也可以使用它 setMinimumDaysInFirstWeek:来调整数周的方式.