NSDateFormatter Locale

二次信任 提交于 2019-12-03 20:54:28

问题


How to set Locale for NSDateFormatter? I've tried the below code and its not working.

- (NSString *)localizedStringWithFormat:(NSString *)format {

    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:format];
    NSCalendar *cal = [NSCalendar currentCalendar];
    NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier: @"fr_FR"];
    cal.locale = locale;
    df.calendar = cal;
    return [df stringFromDate:self];
}

Please let me know how to make this work.

Thanks.


回答1:


NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] 
                     initWithLocaleIdentifier:@"he"];
[dateFormatter setLocale:locale];



回答2:


A bit late to the party, but this is what I did in Swift today:

let df = NSDateFormatter()
df.locale = NSLocale.currentLocale()
df.timeStyle = .MediumStyle
df.dateStyle = .MediumStyle
println("Date: \(df.stringFromDate(obj.dateSent!))")

Depending on your OS region settings, the output should look like this (I'm in Germany):

Date: 27.11.2014 12:30:39

Note: Just figured a lot more people stumble across this SO question, so I guess it can't hurt to answer.




回答3:


in case someone will look for Swift 3 solution:

let dateFormatter = DateFormatter()
let frLocale = Locale(identifier: "fr")
dateFormatter.locale = frLocale



回答4:


Adding this as I spent some time on trying to NOT use the localized locale in my date formatter.

From apple docs: Use the system locale when you don’t want any localizations. Use the current locale to format text that you display to users.

Code: [formatter setLocale:[NSLocale systemLocale]];



来源:https://stackoverflow.com/questions/18964747/nsdateformatter-locale

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!