【问题标题】:Is Friday with date format "c" returned as 5 or 6?日期格式“c”的星期五是返回 5 还是 6?
【发布时间】:2011-04-19 17:05:51
【问题描述】:

一开始我以为用这段代码

+ (NSString *)getDayOfTheWeek:(NSDate *)日期格式:(NSString*)格式 { NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; dateFormatter.dateFormat = 格式; NSString *formattedDateString = [dateFormatter stringFromDate:date]; NSLog(@"Des pico je: %@",formattedDateString); 返回格式化日期字符串; } NSDate *now = [NSDate 日期]; NSString *today = [self getDayOfTheWeek:now format:@"c"]

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

【问题讨论】:

    标签: iphone date


    【解决方案1】:

    “c”是独立的本地星期几。独立意味着它意味着在没有任何进一步的日期上下文的情况下使用(与“e”相反)。当地的星期几取决于地区,即地区规定哪一天是一周的第一天。因此,星期五可以是 5 或 6,具体取决于区域设置。

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

    但如果您只想要一个带有今天名称的字符串,例如“Monday”、“Tuesday”等,您可以使用NSString *today = [self getDayOfTheWeek:now format:@"cccc"];

    【讨论】:

    • 不错,但也许我没有直接提出我的问题。解决方案的结果应该是一个常数,据此我可以说“今天是星期五”或任何一天。当我使用“cccc”时,我肯定会得到一个字符串,它表示星期几的名称,但在不同的语言环境中,我得到不同的字符串,不能用它来确定今天是星期几。我想用这个值来计算一些 Timer 动作。
    • 好的,我尝试了 firstWeekday 的解决方案并为我工作...在美国设置中获得 1 在欧洲获得 2..希望没有其他。 :o) 谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多