2017-12-26 17 views
1

私のアプリケーションは2つの言語に分かれています.1つは英語、もう1つはスペイン語です。今私はサーバーからタイムスタンプを受け取り、 "MMM dd、yyyy" formateで日付を表示する必要があります。 これは私に "Dec 23、2017"を与えていますが、私はそれをスペイン語に変換すると、スペイン語で月の名前を表示する必要があります。 スペイン語で12か月の名前を短い形式で指定するか、NSDateFormatterにこのタイプのオプションを指定することをお勧めしますか?あなたはスペイン語のような特定の言語用のNsdateformatter

NSDateFormatterを見つけセット*フォーマッタ= [[NSDateFormatterのalloc]のinit]必要な特定の言語の

NSDate *date = [dateFormatter dateFromString:[[[webserviceDict valueForKey:@"CurrentWeekEarning"]objectAtIndex:i-1]valueForKey:@"date"]]; 
         [dateFormatter setDateFormat:@"MMM dd, yyyy"]; 
         strTitle = [NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:date]]; 
+0

チェック 'dateFormatter.locale' https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPInternational/InternationalizingLocaleData/InternationalizingLocaleData .html – Hackerman

+0

日付フォーマッタの作成方法とセットアップ方法を示す質問を更新してください。 – rmaddy

答えて

1

ジャスト(正しい順序を設定するには)ロケールを設定しないと、テンプレートから書式を作成します。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"es"]; 
[formatter setLocalizedDateFormatFromTemplate:@"yyyyMMMdd"]; 
NSString *localizedDate = [formatter stringFromDate:[NSDate date]]; 
NSLog(@"Localized date: %@", localizedDate); // 26 dic 2017 

手動でカンマや他の区切りを追加する必要が。彼らはまた言語に依存しています。

定義済みの形式を使用して達成することができるのと同じ:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
formatter.locale = [NSLocale localeWithLocaleIdentifier:@"es"]; 
formatter.timeStyle = NSDateFormatterNoStyle; 
formatter.dateStyle = NSDateFormatterMediumStyle; 
+0

ありがとうサルタン 素晴らしいです。 :) – Chandni

-1

[フォーマッタsetDateStyle:スタイル];

[フォーマッタsetDateFormat:@ "MMM dd、yyyy"];

NSDate * temp = [フォーマッタdateFromString:strDate];

[フォーマッタsetDateFormat:フォーマット];

[フォーマッタsetLocale:[NSLocale currentLocale]];

+2

フォーマットを設定する場合は、スタイルを設定する必要はありません。手動で理想的には、特定のフォーマットを設定せずに、テンプレートを使用してロケールのフォーマットを作成してください。そうしないと、日付が正しくローカライズされません。 – Sulthan

関連する問題