日付の日と月だけを表示したいのですが。基本的にNSDateFormatterLongStyleですが、年はありません。
私が直面している問題はローカリゼーションです。英語版では、たとえば「1月14日」、フランス語では「14Janvier」を表示する必要があります。
そのような日付を印刷する簡単な方法はありますか?または、現在のロケールをチェックして月の前日または後日を設定するためにifelseステートメントを使用する必要がありますか?
よろしくお願いします。
日付の日と月だけを表示したいのですが。基本的にNSDateFormatterLongStyleですが、年はありません。
私が直面している問題はローカリゼーションです。英語版では、たとえば「1月14日」、フランス語では「14Janvier」を表示する必要があります。
そのような日付を印刷する簡単な方法はありますか?または、現在のロケールをチェックして月の前日または後日を設定するためにifelseステートメントを使用する必要がありますか?
よろしくお願いします。
この質問を確認してください.....
以前も同じ問題がありましたが、を使用して解決しましdateFormat
たdateStyle
この関数は、すべてではないにしても、ほとんどの方法でそこに到達するように見えます...
+ (NSString *)dateFormatFromTemplate:(NSString *)templateoptions:(NSUInteger)optslocale:(NSLocale *)locale
「ロケールが異なれば、日付コンポーネントの順序に関する規則も異なります。このメソッドを使用して、指定したロケールのコンポーネントの特定のセットに適切なフォーマット文字列を取得します(通常は現在のロケールを使用します。currentLocaleを参照してください)。」
提供されている例を使用する場合は、からyを削除するだけだと思います
NSString *dateComponents = @"yMMMMd";
そしてそれはあなたに与えられたロケールの年の部分のない文字列を与えるでしょう
私はこの答えを見つけました:iPhoneでNSDateFormatterを使用して、ロケールを保護しますが、日付コンポーネントを失います
それはうまくいきます!
すべてのケースをキャッチするには、if/else では不十分なようです。私は NSDateFormatterLong スタイルを使用し、検索/置換して文字列から年を削除します。