24時間形式で表示する時間を取得しようとして問題が発生しました。別のタイムゾーンで時刻を表示するようにしていますが、24時間形式で表示することができません。
<TextClock
Android:id="@+id/hk_time"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:timeZone="GMT+0800"
Android:format24Hour="MMM dd, yyyy k:mm" />
TextClockを使用して日付を表示することもできますか?
システムが12時間モードの場合、必要なものを取得するためにサブクラスを作成する必要はありません。 JavaDocs 言う:
- 12時間モードの場合:
- Null以外の場合、getFormat12Hour()によって返される値を使用します
- それ以外の場合は、null以外のときにgetFormat24Hour()によって返される値を使用します
- それ以外の場合は、HH:mmなど、ユーザーのロケールに適したデフォルト値を使用します。
したがって、この最後の行でgetFormat12Hour()
がnull
を返すようにし、カスタムのgetFormat24Hour()
形式を使用することを期待します。
<Android.widget.TextClock
Android:id="@+id/hk_time"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:timeZone="GMT+0800"
Android:format24Hour="MMM dd, yyyy k:mm"
Android:format12Hour="@null" />
(ところで、他の人が述べているように、強制形式は注意して使用する必要があります。ユーザーが24時間制を希望する場合は、システム環境設定でこれを指定します。また、数値形式のトプシータービー日付形式を強制するアプリはMM/dd/yyyy
のようなユーザーは、1つ星の評価を招待します(この場合、米国とフィリピンのユーザーからのものを除く)。したがって、MMM
を使用するのは良いことです!それでもなお良いでしょう getBestDateTimePattern() を使用しないでください。ただし、TextClockのサブクラス化が必要になると思います。)
xmlで時間形式を設定する代わりに、Javaファイル、つまり
mTextClock.setFormat24Hour(format);
私のデバイスは12時間フォーマットを使用しています。 24時間形式を使用するように強制するには、次のように記述します。
textClock.setFormat12Hour("kk:mm");
時刻を12時間形式で表示するか、24時間形式で表示するかは、システム設定によって異なります。おそらくあなたのAndroidデバイスまたはエミュレーターは12時間形式に設定されています。そのため、Android:format24Hour
は無視されます。システム設定を上書きして24時間形式を表示したい場合(これはお勧めしません)、別の属性としてAndroid:format12Hour="MMM dd, yyyy k:mm"
を追加します。
ただし、システム設定に応じて日時を表示することを常にお勧めします。アプリに12時間モードまたは24時間モードの個別の処理を必要とする他の(レイアウトなどの)制約がある場合は、is12HourModeEnabled()
またはis24HourModeEnabled()
を呼び出すことで、コードで設定を動的に確認できます。あなたのTextClock
。
2番目の質問に対して、 docs と言います
TextClockは、現在の日付や時刻をフォーマットされた文字列として表示できます。
そしてそれが可能です-時刻との日付を表示します。 「現在以外の日付」を意味する場合は、単純なTextView
に固執し、日付文字列を手動でフォーマットする必要があります。
最初の質問:
確認したところ、デバイスが設定されている場合:
上で述べたように、ユーザーに選択肢を与え、ユーザーにexの使用を強制しない方がよいでしょう。あなたの好きなフォーマット。
2番目の質問:
はい、そうです。 「Android:format12Hour」または「Android:format24Hour」、あるいはその両方を使用する必要があります。
Android:format12Hour="MMM dd, yyyy"
Android:format24Hour="MMM dd, yyyy"
[〜#〜] mmm [〜#〜]は、月の名前が3文字であることを意味します
dd 1日2文字を意味します
yyyy 1年に4文字を意味します