对于时间区域格式,只显示年份的话,有没有办法中文区显示完整年份,如:“2003年”?

zgjie 发布于 2013年07月31日
无人欣赏。

本人用setDateFormat试来试去只能实现“2003”,后面那个“年”字没有。

可以本地化语言翻译“年”字,中文显示“年”字,英文显示“”,但是这是对应于系统设置的语言,跟区域格式无关。区域格式,有办法显示“2003年”吗?

共7条回复
ibuick 回复于 2013年07月31日 | 更新于 2013年08月01日
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        NSLocale *cnLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh"];
        [formatter setLocale:cnLocale];
        [formatter setDateStyle:NSDateFormatterFullStyle];
        [formatter setTimeStyle:NSDateFormatterFullStyle];
        NSLog(@"Date for locale %@: %@",
              [[formatter locale] localeIdentifier], [formatter stringFromDate:[NSDate date]]);

    }
    return 0;
}
tinyfool 回复于 2013年07月31日

楼上,编辑器上的那个101010的图标就是用来贴代码的

ibuick 回复于 2013年08月01日

我突然发现,你可能更需要的是这段代码,,,不过,你都是不看 API 文档的么?

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        NSLocale *cnLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh"];
        NSString *dateFormat;
        NSString *dateComponents = @"yyyy";
        dateFormat = [NSDateFormatter dateFormatFromTemplate:dateComponents options:0 locale:cnLocale];
        [formatter setDateFormat:dateFormat];
        NSLog(@"Date for locale %@: %@",
              [cnLocale displayNameForKey:NSLocaleIdentifier value:@"zh"] , [formatter stringFromDate:[NSDate date]]);
    }
    return 0;
}
tinyfool 回复于 2013年08月01日

楼上你可以直接修改你的帖子,右下角有编辑按钮

贴代码的方式是,你先把代码贴到编辑器,然后选中代码,点击上面的代码按钮 101 010 那个

ibuick 回复于 2013年08月01日

搞定了,搞定了,

tinyfool 回复于 2013年08月01日

:) 帅哥,果然聪明

zgjie 回复于 2013年08月01日

感谢!以前我看过这个method,看示例以为只是根据地区显示不同的年月日顺序,原来还可以这样子!

登录 或者 注册
相关帖子