Sup*_*off 3 cocoa-touch date objective-c nsdate ios
我有一个iOS应用程序,需要根据当天设置几个不同的日期标签.我正在使用NSDate并NSDateFormatter做到这一点.但是有些事情我不确定:如果用户的iOS设备的语言/本地化设置为英语以外的其他设置,那么我的if语句会检查当前是"星期一"还是"星期二",停止工作?
这是我的代码:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyyMMdd";
NSDate *date = [NSDate date];
dateFormatter.dateFormat = @"EEEE";
NSString *dayString = [[dateFormatter stringFromDate:date] capitalizedString];
NSLog(@"Day: %@", dayString);
if ([dayString isEqualToString:@"Monday"]) {
}
else if ([dayString isEqualToString:@"Tuesday"]) {
}
else if ([dayString isEqualToString:@"Wednesday"]) {
}
else if ([dayString isEqualToString:@"Thursday"]) {
}
else if ([dayString isEqualToString:@"Friday"]) {
}
else if ([dayString isEqualToString:@"Saturday"]) {
}
else if ([dayString isEqualToString:@"Sunday"]) {
}
Run Code Online (Sandbox Code Playgroud)
deo*_*hal 17
您可以使用以下程序.
NSDateComponents *component = [[NSCalendar currentCalendar] components:NSCalendarUnitWeekday fromDate:[NSDate date]];
switch ([component weekday]) {
case 1:
//Sunday
break;
case 2:
//Monday
break;
...
case 7:
//Saturday
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)
虽然答案 usingNSDateComponents是最好的选择,但另一种适用于工作日字符串的可能性是:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"EEEE";
NSDate *date = [NSDate date];
NSString *dayString = [dateFormatter stringFromDate:date];
NSInteger weekdayNum = [[dateFormatter weekdaySymbols] indexOfObject:dayString];
switch (weekdayNum) {
case 0:
//Sunday
break;
case 1:
//Monday
break;
...
case 6:
//Saturday
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)