簡體   English   中英

NSDateFormatter語言環境不起作用

[英]NSDateFormatter locale is not working

我正在使用以下代碼從日期獲取NSString

NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateStyle = kCFDateFormatterLongStyle;
df.timeStyle = kCFDateFormatterNoStyle;
df.doesRelativeDateFormatting = YES;
[df setLocale:[NSLocale currentLocale]];
[df  setTimeZone:[NSTimeZone systemTimeZone]];
NSString *dateString=[df stringFromDate:myDate];

但是即使更改區域設置后它也顯示為“今天”,“昨天”。我還想顯示該語言的本地化嗎?

我使用了您的代碼並創建了這個代碼:

NSDate *yesterday;
NSTimeInterval interval;

NSCalendar *cal = [NSCalendar currentCalendar];

[cal rangeOfUnit:NSDayCalendarUnit
       startDate:&yesterday
        interval:&interval
         forDate:[NSDate date]];

yesterday = [yesterday dateByAddingTimeInterval:-interval];



NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateStyle = kCFDateFormatterLongStyle;
df.timeStyle = kCFDateFormatterNoStyle;
df.doesRelativeDateFormatting = YES;

[@[[NSLocale localeWithLocaleIdentifier:@"de_DE"], [NSLocale localeWithLocaleIdentifier:@"es_ES"],[NSLocale localeWithLocaleIdentifier:@"en_US"]] enumerateObjectsUsingBlock:^(NSLocale *locale, NSUInteger idx, BOOL *stop) {
    [df setLocale:locale];
    [df  setTimeZone:[NSTimeZone systemTimeZone]];
    NSString *dateString=[df stringFromDate:yesterday];
    NSLog(@"%@", dateString);
}];

正確輸出

Gestern
ayer
Yesterday

您的問題必須擺在其他地方。

在命令行程序中測試


確保在更改設備/模擬器上的語言后,您會完全殺死該應用程序,然后再重新打開它。

嗨,我為LocalTime編寫了此函數,它以日期作為String的形式輸入日期,並隱含到Local Time String。 可以幫助您

+(NSString*)LocalTimeWitheDateString:(NSString*)dateString{
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    NSTimeZone *timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
    [formatter setTimeZone:timeZone];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *date =[formatter dateFromString:dateString];
    NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];
    [formatter setTimeZone:localTimeZone];
    NSString *LnewTimeZoneDateString = [formatter stringFromDate:date];
    return LnewTimeZoneDateString;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM