从NSDateFormatterFullStyle字符串中删除年份

时间:2013-06-23 16:17:21

标签: ios objective-c nsdate nsdateformatter

我搜索过这个问题并没有找到一个确凿而优雅的解决方案。无论如何都要更改NSDateFormatterFullStyleyear来抑制年份信息。我正在使用代码:

    NSString *dateDescription;
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
    [dateFormatter setTimeZone:gmt];
    [dateFormatter setDateStyle:NSDateFormatterFullStyle];
    dateDescription = [dateFormatter stringFromDate:date];
    NSLog(@"%@", dateDescription);

结果:2013年3月13日,星期三

此致 马科斯

1 个答案:

答案 0 :(得分:5)

以下是您将获得的最接近的,没有大量棘手的字符串处理。对dateFormatFromTemplate:options:locale:的调用将更新提供的模板,以便与指定的区域设置最佳匹配。

这假定正常的“完整”样式为您提供工作日名称,月份名称和月份日期。

NSString *fullMinusYear = [NSDateFormatter dateFormatFromTemplate:@"EEEE, MMMM dd" options:0 locale:[NSLocale currentLocale]];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:fullMinusYear];
NSString *dateDescription = [dateFormatter stringFromDate:date];