Android: material date picker opens on the wrong day
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, react-native
- Ambito
- mobile
Direzione di ricerca
Inizia da android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialDatePicker.kt, in particolare da setInitialDate() e da come RNDate fornisce la data selezionata. Controlla se i test del selettore di date Android coprono timeZoneName e le date vicine ai confini dei giorni UTC. Il lavoro è completato quando il selettore si apre nel giorno di calendario locale previsto in tutti i fusi orari e un test copre la regressione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hi!
Thank you for your work on this project!
RNMaterialDatePicker passes the raw value timestamp to setSelection, but MaterialDatePicker interprets the selection as a UTC day. The initial day therefore ignores timeZoneName and the device time zone, and can be off by one.
For example, with timeZoneName: 'Europe/Brussels', a value of 10 November 00:10 opens on 9 November, because that moment is still 9 November in UTC. Zones behind UTC can open a day late in the same way.
This diff solved the problem, but I'm not sure if it's the ideal solution:
diff --git a/node_modules/@react-native-community/datetimepicker/android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialDatePicker.kt b/node_modules/@react-native-community/datetimepicker/android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialDatePicker.kt
index 9dece7a..d1910aa 100644
--- a/node_modules/@react-native-community/datetimepicker/android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialDatePicker.kt
+++ b/node_modules/@react-native-community/datetimepicker/android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialDatePicker.kt
@@ -16,6 +16,7 @@ import com.google.android.material.datepicker.MaterialDatePicker
import com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener
import com.google.android.material.R
import java.util.Calendar
+import java.util.TimeZone
class RNMaterialDatePicker(
private val args: Bundle,
@@ -46,7 +47,11 @@ class RNMaterialDatePicker(
private fun setInitialDate() {
val initialDate = RNDate(args)
- builder.setSelection(initialDate.timestamp())
+ // Material reads the selection as a UTC day, so pass the day in the picker's time zone as UTC midnight
+ val selection = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
+ selection.clear()
+ selection.set(initialDate.year(), initialDate.month(), initialDate.day())
+ builder.setSelection(selection.timeInMillis)
}
private fun setTitle() {
This issue body was partially generated by patch-package.
- Lingua principale
- JavaScript
- Stelle
- 2.9k
- Fork
- 459
- Merge medio
- 4g 16h
- PR unite (30g)
- 5
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di react-native-datetimepicker/datetimepicker
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 58/100
react-native-datetimepicker/datetimepicker#1070 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 52/100
-
DateTimePickerAndroid.open() throws "Cannot read property" error on RN 0.78.3 new architectureAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
react-native-datetimepicker/datetimepicker#1047 · 6 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
react-native-datetimepicker/datetimepicker#1046 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
Tutte le issue di react-native-datetimepicker/datetimepicker
Issue simili
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 87/100
OWASP/CheatSheetSeries#2905 ·
I maintainer di solito rispondono entro 1 giorno
-
[P2] PCアプリにバージョンと更新情報の表示がないApertadesktop enhancement P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 74/100
AllTheMods/ATM10-Aeronautics#159 ·
I maintainer di solito rispondono entro 6 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
ComposioHQ/composio#5249 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
zilliztech/memsearch#838 ·
I maintainer di solito rispondono entro 1 giorno