代码之家  ›  专栏  ›  技术社区  ›  Vanya

日期格式为“c”的星期五是返回5还是6?

  •  1
  • Vanya  · 技术社区  · 15 年前

    起初我认为使用这个代码

    + (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"]
    

    应该返回一个字符串,其中包含每天的数字,但对于不同的区域格式设置,它会得到不同的结果。(Mon=1或Sun=1)可能还有一些变化。不知道。那么,有没有一种通用的方法可以让iPhone上所有地区的日期类型设置都能轻松获得这种解决方案呢?

    1 回复  |  直到 15 年前
        1
  •  2
  •   DarkDust    15 年前

    “c”是一周中独立的本地日。独立的意思是它的意思是要使用没有任何进一步的日期上下文(相对于“e”)。当地一周的哪一天取决于地区,也就是说,地区规定哪一天是一周的第一天。所以星期五可以是5或6,这取决于地点。

    找出一周中哪一天是你可以使用的第一天 [[NSCalendar currentCalendar] firstWeekday]

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