Se il sistema è in modalità 12 ore, non è necessario scrivere una sottoclasse per ottenere ciò che si desidera. Il JavaDocs dire:
- Nella modalità 12 ore:
- Utilizzare il valore restituito da getFormat12Hour() quando non null
- Altrimenti, utilizzare il valore restituito da getFormat24Hour() quando non nullo
- Altrimenti, utilizzare un valore predefinito appropriato per le impostazioni dell'utente, come HH: mm
Pertanto, mi sarei aspettato l'ultima riga in questo per fare getFormat12Hour()
ritorno null
e quindi utilizzare la vostra abitudine getFormat24Hour()
formato:
<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" />
(BTW, come altri hanno detto, formati forzati dovrebbero essere usati con cautela. Se i tuoi utenti volevano un orologio di 24 ore, avrebbero specificato questo nelle loro preferenze di sistema. E le app che impongono ai loro utenti formati data in formato numerico, come MM/dd/yyyy
, invitano le valutazioni a una stella (tranne, in questo caso, dagli utenti statunitensi e filippini), quindi è una buona cosa che stai usando MMM
! Sarebbe comunque meglio usare getBestDateTimePattern(), che, credo, richiederebbe la sottoclasse TextClock.)
fonte
2014-02-20 22:29:41
come dovrei cambiarlo per aggiungere nella data? – littledevils326
Non sono sicuro della tua comprensione di una "data", ma se intendi giorno, mese e anno, ciò non è già incluso nel tuo formato "MMM dd, yyyy k: mm" '? – saschoar