4

日付の日と月だけを表示したいのですが。基本的にNSDateFormatterLongStyleですが、年はありません。

私が直面している問題はローカリゼーションです。英語版では、たとえば「1月14日」、フランス語では「14Janvier」を表示する必要があります。

そのような日付を印刷する簡単な方法はありますか?または、現在のロケールをチェックして月の前日または後日を設定するためにifelseステートメントを使用する必要がありますか?

よろしくお願いします。

4

4 に答える 4

2

この質問を確認してください..... 以前も同じ問題がありましたが、を使用して解決しましdateFormatdateStyle

于 2009-12-11T14:09:34.483 に答える
1

この関数は、すべてではないにしても、ほとんどの方法でそこに到達するように見えます...

+ (NSString *)dateFormatFromTemplate:(NSString *)templateoptions:(NSUInteger)optslocale:(NSLocale *)locale

http://developer.apple.com/mac/library/documentation/cocoa/reference/foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/occ/clm/NSDateFormatter/dateFormatFromTemplate:options:locale:

「ロケールが異なれば、日付コンポーネントの順序に関する規則も異なります。このメソッドを使用して、指定したロケールのコンポーネントの特定のセットに適切なフォーマット文字列を取得します(通常は現在のロケールを使用します。currentLocaleを参照してください)。」

提供されている例を使用する場合は、からyを削除するだけだと思います

NSString *dateComponents = @"yMMMMd";

そしてそれはあなたに与えられたロケールの年の部分のない文字列を与えるでしょう

于 2009-12-11T13:17:37.637 に答える
1

私はこの答えを見つけました:iPhoneでNSDateFormatterを使用して、ロケールを保護しますが、日付コンポーネントを失います

それはうまくいきます!

于 2009-12-11T13:56:00.820 に答える
-1

すべてのケースをキャッチするには、if/else では不十分なようです。私は NSDateFormatterLong スタイルを使用し、検索/置換して文字列から年を削除します。

于 2009-12-11T13:04:14.013 に答える