2010-10-01 84 views
0

起初我以为使用此代码星期五是日期格式“c”是5还是6?

 
+ (NSString *)getDayOfTheWeek:(NSDate *)date format:(NSString*)format 
{ 
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
dateFormatter.dateFormat = format; 
NSString *formattedDateString = [dateFormatter stringFromDate:date]; 
NSLog(@"Des pico je: %@",formattedDateString); 
return formattedDateString; 
} 
NSDate *now = [NSDate date]; 
NSString *today = [self getDayOfTheWeek:now format:@"c"] 

应该返回一个字符串以数字的每一天,但它可以为不同的区域格式设置不同的结果。 (星期一= 1或星期一= 1),也许有些变化。不知道。那么是否有一种常见的方法可以轻松地在iPhone上为所有区域日期类型设置一般地获得此解决方案?

回答

1

“c”是本周的独立日。独立意味着它的使用意味着没有任何进一步的日期上下文(而不是“e”)。并且当地的星期几取决于区域设置,即区域设置指明哪一天是一周的第一天。所以星期五可以是5或6,具体取决于语言环境。

要了解哪一天是一周中的第一天,您可以使用[[NSCalendar currentCalendar] firstWeekday]

但是,如果您只需要一个名称为今天的字符串,如“星期一”,“星期二”等,则可以使用NSString *today = [self getDayOfTheWeek:now format:@"cccc"];

+0

很好的接触,但也许我没有直接提出我的问题。解决方案的结果应该是恒定的,我可以说“今天是星期五”或者任何一天。当我使用“cccc”时,我肯定会得到一个字符串,它表示星期中的名称,但在不同的语言环境中,我得到不同的字符串,不能用它来确定今天的星期几。我想用这个值来计算一些Timer动作。 – Vanya 2010-10-01 08:01:32

+0

好的,我在firstweekday上试了解这个解决方案,并且为我工作......在美国的设置中,在欧洲得到1,得到2 ..没有别的。 :o)谢谢 – Vanya 2010-10-01 08:37:43

相关问题