Неправильный часовой пояс в некоторых устройствах - React Native - PullRequest
1 голос
/ 14 октября 2019

У меня есть приложение на своем устройстве, работающее на разных устройствах. Везде, где я использую время или дату / время из new Date() или moment или из любой другой библиотеки, некоторые устройства показывают неправильное время в приложении. Фактическое время устройства является правильным относительно часового пояса, но оно показывает другое время внутри приложения с другим часовым поясом, даже если настройки часового пояса в устройстве установлены правильно (пробовал с автоматическим и вручную установлен часовой пояс).

Я сталкивался с похожими проблемами в stackoverflow и git реагировать на нативные проблемы, утверждая, что это можно исправить путем обновления пакета jsc-android вручную. У меня уже есть последняя версия jsc-android в приложении, но я тоже столкнулся с той же проблемой. Это происходит даже в последней версии react-native: 0.61.

Одним из таких устройств является Redmi Note 5 (версия Android 8.1.0).

Вот скриншот примера приложения (пожалуйста,игнорируйте оранжевые полосы), показывая неправильный часовой пояс. Текущий часовой пояс IST (индийское стандартное время)

Screenshot

Системное время можно сравнить в строке состояния (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;

Любые предложения???

1 Ответ

0 голосов
/ 14 октября 2019

Каждый раз, когда мне нужно получить правильную дату из какого-либо места, я использую этот API: http://worldtimeapi.org/timezone/America/Sao_Paulo.

Может быть, это поможет вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...