Das heutige Problem besteht darin, dass ich ein Problem mit der Verwendung von React-Native-Paper-Dates habe und die Wochentage im Kalender angezeigt werden. Modal war nicht korrekt. Es lag um einen Tag daneben, zum Beispiel ist heute der 15. Juli 2024 und der 15. sollte eigentlich in der Montag-Kolumne erscheinen, aber stattdessen stand er stattdessen in der Sonntag-Kolumne.
Irgendwann finde ich heraus, dass das Problem etwas mit Intl.DateTimeFormat zu tun hat, weil ich versucht habe, den folgenden Code in einer Umgebung auszuführen; meines und eine Javascript-Laufzeitumgebung auf Mozilla.dev (ich weiß, es ist so albern, aber ich habe es versucht, lol).
console.log(Intl.DateTimeFormat().resolvedOptions().timeZone); //"UTC" on my local development env //"Asia/Phnom_Penh" on Mozilla.dev
Jetzt habe ich es verstanden, also jammere ich zu meinem Kollegen und er erwähnte, dass Javascripts Intl für unsere App nicht stabil ist. Also schickte er mir diesen Formatjs-Link hierher, in dem erwähnt wurde, dass die Javascript-Engine keine Standardzeitzone bereitstellt, sodass es keine Möglichkeit gibt, daraus die Standardzeitzone abzurufen. und unsere native React-App verwendet dieHermes Engine, von der ich annehme, dass sie Javascripts Intl nichts über die Zeitzone preisgibt, weshalb standardmäßig immer „UTC“ verwendet wird, wenn ich versuche, console.log(Intl.DateTimeFormat()) auszuführen. .resolvedOptions().timeZone).
Jetzt, wo ich meine Antwort habe; Ich probiere einfach den folgenden Code aus und das Problem ist behoben. Durch die richtige Zeitzone sind die Wochentage jetzt in jeder Spalte des Kalendermodals korrekt.
import '@formatjs/intl-datetimeformat/polyfill' import '@formatjs/intl-datetimeformat/add-all-tz.js' //If this statement doesn't work, use expo-localization's getCalendar() const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone //For my case, I have to use expo-localization const timezone = Localization.getCalendars()[0].timezone if ('__setDefaultTimeZone' in Intl.DateTimeFormat) { Intl.DateTimeFormat.__setDefaultTimeZone('America/Los_Angeles') }
Das obige ist der detaillierte Inhalt vonEin Zeitzonenproblem beim React-Native-Paper-Date (y-off). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!