У меня есть приложение на своем устройстве, работающее на разных устройствах. Везде, где я использую время или дату / время из new Date()
или moment
или из любой другой библиотеки, некоторые устройства показывают неправильное время в приложении. Фактическое время устройства является правильным относительно часового пояса, но оно показывает другое время внутри приложения с другим часовым поясом, даже если настройки часового пояса в устройстве установлены правильно (пробовал с автоматическим и вручную установлен часовой пояс).
Я сталкивался с похожими проблемами в stackoverflow и git реагировать на нативные проблемы, утверждая, что это можно исправить путем обновления пакета jsc-android вручную. У меня уже есть последняя версия jsc-android в приложении, но я тоже столкнулся с той же проблемой. Это происходит даже в последней версии react-native: 0.61
.
Одним из таких устройств является Redmi Note 5 (версия Android 8.1.0).
Вот скриншот примера приложения (пожалуйста,игнорируйте оранжевые полосы), показывая неправильный часовой пояс. Текущий часовой пояс IST (индийское стандартное время)
Системное время можно сравнить в строке состояния (11:21 AM). и Время приложения (3:51).
Вот код для вышеприведенного вывода (App.js)
import React from 'react';
import {
View,
Text,
StatusBar,
} from 'react-native';
import moment from 'moment';
const App = () => {
return (
<View style={{flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<StatusBar barStyle="dark-content" />
<Text>Time: {moment(new Date()).format("h:mm A")}</Text>
<Text>Time String: {new Date().toTimeString()}</Text>
<Text>Time Offset: {new Date().getTimezoneOffset()}</Text>
<Text>Static Time (5:21 PM): {moment(new Date("2019-09-23T11:51:29.184Z")).format("h:mm A")}</Text>
</View>
);
};
export default App;
Любые предложения???