3

ここでの最初の質問を少し単純なものにして申し訳ありません。NSLocale および NSCalendar クラスの説明を 1 日かけて読みましたが、これが可能かどうかわかりませんでした。

UIDatePickerModeDateAndTime モードに UIDatePicker があります。現在、デフォルトの動作であるユーザーのロケールに従って日付と時刻を表示しています。

UIDatePicker を 12 時間または 24 時間形式で表示するオプションを提供できるようにしたいと考えています。ユーザーが現在使用している時間形式を検出することは問題ではありませんが、ユーザーのロケール設定を完全に破棄せずに UIDatePicker の時間形式だけを変更する方法については明確ではありません (ピッカーは、週および月)。UIDatePicker は、ロケールの設定とカレンダーの設定をサポートしています。

したがって、質問 1 は、これが NSLocale または NSCalendar を介して行うべきものであるかどうかであり、質問 2 は、残りのユーザーのロケール設定を破棄せずに時刻形式を分離する方法を誰かが推奨できるかどうかです。

提案をありがとう。

4

3 に答える 3

1

OK、ここで同じ質問をしている他の人たちの過去 2 年間の価値を読んだ後、UIDatePicker はユーザーのロケール設定ではなくユーザーの国設定を使用し、それをオーバーライドできないため、これを行う方法はないようです。プログラム的に。バグを報告しました。

于 2011-06-03T17:32:49.277 に答える
1

これはあなたが探している答えではありませんが、Cocoa では、NSDateFormatter を作成し、setFormatter を使用して NSDatePicker (NSControl) にアタッチできます。残念ながら、同等の iPhone クラス (UIControl) はまだこれをサポートしていません。私はそれについて Apple にバグを報告しましたが、これは既知の問題です。

于 2009-06-15T13:07:16.130 に答える
0

AM/PM のユーザー入力を使用して、別の変数を 12 時間形式に基づく AM または PM の文字列として初期化することで、この問題を解決しました。24 時間形式の新しい時間が NSCalendar に入れられます。ウィット:

var hra = 1//ENTER INITIAL HOUR (HH)

var dna = "PM"//ENTER "AM" OR "PM"

if hra <= 12 && dna == "PM"{

     hra = hra + 12
}

変数 hra は、24 時間形式の値を取るようになりました。

于 2015-01-31T16:50:59.733 に答える