ios – 如何从NSDate变量获取工作日和/或月份名称?
发布时间:2020-12-15 01:46:23 所属栏目:百科 来源:网络整理
导读:好的.我们遇到的问题是我们的NSStrings充满了日期 以yyyyMMdd的格式,我们想要做的是获取当前的工作日和月份名称.函数dagOmvandlare将日期字符串转换为工作日和月份.然后在viewDidload上调用该函数,将所有按钮标题命名为英语到瑞典语. 我们目前的解决方案看起
好的.我们遇到的问题是我们的NSStrings充满了日期
以yyyyMMdd的格式,我们想要做的是获取当前的工作日和月份名称.函数dagOmvandlare将日期字符串转换为工作日和月份.然后在viewDidload上调用该函数,将所有按钮标题命名为英语到瑞典语. 我们目前的解决方案看起来像这样: -(NSString *)dagOmvandlare:(id) suprDatum{ NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; dateFormatter.dateFormat = @"yyyyMMdd"; NSDate *date = [dateFormatter dateFromString:suprDatum]; NSString * monthString = [date descriptionWithCalendarFormat:@"%B"timeZone:nil locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]]; if ([monthString isEqualToString:@"January"]) { monthString = @"Januari"; } else if ([monthString isEqualToString:@"February"]) { monthString = @"Februari"; } else if ([monthString isEqualToString:@"May"]) { monthString = @"Maj"; } else if ([monthString isEqualToString:@"June"]) { monthString = @"Juni"; } else if ([monthString isEqualToString:@"July"]) { monthString = @"Juli"; } else if ([monthString isEqualToString:@"August"]) { monthString = @"Augusti"; } else if ([monthString isEqualToString:@"October"]) { monthString = @"Oktober"; } else if ([monthString isEqualToString:@"March"]) { monthString = @"Mars"; } return monthString; } - (void)viewDidLoad { [super viewDidLoad]; [button3 setTitle:(NSString *)[self dagOmvandlare:self.datum1] forState:UIControlStateNormal]; [button2 setTitle:(NSString *)[self dagOmvandlare:self.datum2] forState:UIControlStateNormal]; [bmanad1 setTitle:(NSString *)[self dagOmvandlare:self.datum3] forState:UIControlStateNormal]; } 到目前为止我们已经想到的是 NSString * monthString = [date descriptionWithCalendarFormat:@"%B"timeZone:nil locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]]; Apple公司关于非公开API的指南不允许使用.所以主要的问题是,有什么其他方式可以获得工作日和月份名称,其中包含日期格式为yyyyMMdd的日期字符串? 解决方法
无需手动转换为瑞典语单词. iPhone会为你做的.尝试这个:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; dateFormatter.dateFormat = @"yyyyMMdd"; NSDate *date = [dateFormatter dateFromString:@"20111010"]; // set swedish locale dateFormatter.locale=[[NSLocale alloc] initWithLocaleIdentifier:@"sv_SE"]; dateFormatter.dateFormat=@"MMMM"; NSString *monthString = [[dateFormatter stringFromDate:date] capitalizedString]; NSLog(@"month: %@",monthString); dateFormatter.dateFormat=@"EEEE"; NSString *dayString = [[dateFormatter stringFromDate:date] capitalizedString]; NSLog(@"day: %@",dayString); 输出: month: Oktober day: M?ndag (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |