我有这样的约会(通过Twitter API检索)Thu Jun 05 12:57:52 +0000 2014
我希望转换为意大利风格:Giovedì 5 Giugno 2014
。
是否可以使用NSDateFormatter
,如果是,如何?
答案 0 :(得分:0)
是的,使用正确的格式和区域设置。
NSString *localeIdentifier = @"en_US";
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:localeIdentifier];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];;
[dateFormatter setDateFormat:@"MMMM dd yyyy"];
[dateFormatter setLocale:locale];
NSString *formattedDateString = [dateFormatter stringFromDate:[NSDate date]];
此代码的结果为June 05 2014
。如您所见,我正在使用en_US语言环境。
答案 1 :(得分:0)
为您创建意大利日期:
NSString *_dateInString = @"Thu Jun 05 12:57:52 +0000 2014";
NSDateFormatter *_dateFormatter = [[NSDateFormatter alloc] init];
[_dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_GB"]];
[_dateFormatter setDateFormat:@"EEE MMM dd HH:mm:ss Z yyyy"];
NSDate *_date = [_dateFormatter dateFromString:_dateInString];
[_dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"it_IT"]];
[_dateFormatter setDateFormat:@"EEEE d MMMM yyyy"];
NSLog(@"%@", [_dateFormatter stringFromDate:_date]);
控制台说:
giovedì 5 giugno 2014
另外,如果您想更改月份名称或工作日的名称(例如将它们设为大写),您可以使用NSDateFormatter
的以下方法(我不会说任何意大利语) ,所以我留给那些做的人:
-setWeekdaySymbols:
-setShortWeekdaySymbols:
-setVeryShortWeekdaySymbols:
-setStandaloneWeekdaySymbols:
-setShortStandaloneWeekdaySymbols:
-setVeryShortStandaloneWeekdaySymbols:
-setMonthSymbols:
-setShortMonthSymbols:
-setVeryShortMonthSymbols:
-setStandaloneMonthSymbols:
-setShortStandaloneMonthSymbols:
-setVeryShortStandaloneMonthSymbols:
您可以找到here的官方文档。
答案 2 :(得分:0)
首先尝试使用此代码段我已将指定日期转换为英语日期,然后转换为意大利语
NSString * yourJSONString = @"Thu Jun 05 12:57:52 +0000 2014";
NSString *localeIdentifier = @"en_US";
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:localeIdentifier];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];;
[dateFormatter setDateFormat:@"EEEE MMMM dd HH:mm:ss Z yyyy"];
[dateFormatter setLocale:locale];
NSDate *dateFromString = [dateFormatter dateFromString:yourJSONString];
NSLog(@"%@", dateFromString);
NSString *localeIdentifier1 = @"it_IT";
NSLocale *locale1 = [[NSLocale alloc] initWithLocaleIdentifier:localeIdentifier1];
NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];;
[dateFormatter1 setDateFormat:@"EEEE d MMMM yyyy"];
[dateFormatter1 setLocale:locale1];
NSString *formattedDateString = [dateFormatter1 stringFromDate:dateFromString];
NSLog(@"%@", formattedDateString);