【发布时间】:2011-10-25 13:28:45
【问题描述】:
我开发了一个需要获取当前周的应用。我试过这个:
- (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];
}
但它显示了 52。这实际上是一个错误的结果。请给我建议任何想法。 提前致谢。
【问题讨论】:
-
如果一年从星期六开始呢?这周不是第一周...这是上一年的最后一周 = 第 52 周:)。
-
@GrizzlyNetch:这是 ISO-8601 编号中前一年的第 52 年。这将是美国第一个编号。然后是美国的星期从星期日开始的事实。显然还有其他几个星期编号系统只是为了让事情变得更加混乱:en.wikipedia.org/wiki/Seven-day_week#Week_numbering(在正确处理令人沮丧方面,星期数字可能是唯一与 DST 相匹配的东西。)
标签: iphone ios nsdate nsdatecomponents