在 iOS 中获取月份的本地化名称

Posted

技术标签:

【中文标题】在 iOS 中获取月份的本地化名称【英文标题】:Get localised names of Months in iOS 【发布时间】:2014-06-26 12:01:29 【问题描述】:

我的 ios 应用程序支持 6 种语言。现在我想显示本地化的月份名称。

e.g. January in French will show "Janvier"

为此,我在将日期从 UTC 转换为本地时区时有以下代码

    -(NSString *)getLocalDateFromUTCFormattedDate:(NSString*)utcDate

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    NSTimeZone *sourceTimeZone = [NSTimeZone timeZoneWithName:@"UTC"];
    [dateFormatter setTimeZone:sourceTimeZone];
    [dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH:mm:ss'Z'"];
    NSDate *dateFromServer = [dateFormatter dateFromString:utcDate];

    // Now convert to local date
    dateFormatter.locale = [NSLocale systemLocale];
    [dateFormatter setDateFormat:@"dd MMMM yyyy"];
    NSTimeZone* localTimeZone = [NSTimeZone systemTimeZone];
    [dateFormatter setTimeZone:localTimeZone];
    NSString *localDate = [dateFormatter stringFromDate:dateFromServer];
    return localDate;

但即使我将语言更改为法语/日语后,月份名称仍然是英文。 我得到了这个 link ,但我不想硬编码语言环境。所以我用过

dateFormatter.locale = [NSLocale systemLocale];

但没有运气。谁能告诉我这有什么问题?

【问题讨论】:

【参考方案1】:

可能是这个tutorial 帮助你。

【讨论】:

我的应用支持的每种语言都有 .strings 文件。所以你的意思是我需要翻译每种语言的月份名称,对吗? iOS 是否不会将月份名称更改为从 iOS 设置中选择的语言?

以上是关于在 iOS 中获取月份的本地化名称的主要内容,如果未能解决你的问题,请参考以下文章

time模块

time

时间格式大全

iOS:如何从数字中获取正确的月份名称?

从 google api 获取 EN、IT、FR、DE、ES 本地化城市名称

Rails datetime_select 月份名称未显示国际化