在意大利风格的日期转换英式日期

时间:2014-06-05 13:23:31

标签: ios objective-c nsdateformatter

我有这样的约会(通过Twitter API检索)Thu Jun 05 12:57:52 +0000 2014我希望转换为意大利风格:Giovedì 5 Giugno 2014

是否可以使用NSDateFormatter,如果是,如何?

3 个答案:

答案 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语言环境。

Date Format Patterns

答案 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);