ユーザーが好む日付形式を知るにはどうすればよいですか? 電話のローカル設定からそれを読み取る方法はありますか? ユーザーは日付を「dd/mm/yyyy」または「mm/dd/yyyy」のどちらの形式で読み取ることを好みますか?
前もって感謝します。
ユーザーが好む日付形式を知るにはどうすればよいですか? 電話のローカル設定からそれを読み取る方法はありますか? ユーザーは日付を「dd/mm/yyyy」または「mm/dd/yyyy」のどちらの形式で読み取ることを好みますか?
前もって感謝します。
NSDateFormatter を使用しますが、(形式ではなく) スタイルを設定して、ユーザーのロケール形式を使用するようにします。
たとえば、NSDateFormatter を作成し、そのように構成します
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
(他の国では dd/mm/yy である mm/dd/yy タイプの日付の場合)
CFDateFormatter は、いくつかの日付と時刻の書式スタイル (短、中、長、および完全) を定義します。また、コンポーネントの出力を抑制するために使用できる「なし」スタイルも定義します。スタイルの使用法は、「日付形式スタイルの使用」に示されています。日付と時刻のスタイルは、正確な形式を指定するものではなく、ロケール、ユーザー設定、およびオペレーティング システムのバージョンによって異なります。正確な形式が必要な場合は、CFDateFormatterSetFormat 関数を使用して形式文字列を変更します (「日付形式文字列の使用」を参照)。</p>
トリックを行う必要があります。
日付をフォーマットする前にロケール設定が必要な場合に備えて、次のように NSLocale を使用する必要があります。
NSLocale *locale = [NSLocale currentLocale];
これには、現在のロケール設定に関する多数の情報が含まれています。詳細については、ドキュメントを参照してください。
ユーザーが好む形式を知るには、 [[dateFormatter locale] localeIdentifier] を使用しました。en_US が返された場合は、日付が mm/dd/yyyy 形式であることを意味し、それ以外の場合は dd/mm/yyyy 形式であることを意味します。dateFormatter は NSDateFormatter クラスのインスタンスです。
あなたは本当に正確なフォーマットを知りたいですか、それともそれに従って NSDate と NSString オブジェクトの間で変換したいですか? 後者の場合、 NSDateFormatter があなたの担当であり、ユーザーの好みに合わせて適切なフォーマットを自動的に生成します。
「mm/dd / yyy」形式を使用している国は米国だけではありません。また、「dd / mm/yyyy」だけが代替手段ではありません。
詳細については、 http://en.wikipedia.org/wiki/Calendar_date#List_of_the_world_locations_by_date_format_in_useを参照してください。
iOS 6以降、「localizedStringFromDate」を使用できます
NSString*localizedDate = [NSDateFormatter localizedStringFromDate:[NSDate date] dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterShortStyle];