某些设备中的时区错误 - React Native

Jos*_*hua 6 javascript datetime android react-native

我有一个在各种设备上运行的反应本机应用程序。无论我在何处使用任何其他库中的时间或日期时间new Date()moment某些设备都会在应用程序中显示错误的时间。实际设备时间相对于时区是正确的,但即使设备中的时区设置正确设置(尝试使用自动和手动设置时区),它也会在应用程序内显示不同时区的不同时间。

我在 stackoverflow 和 React-native 的 git issues 上遇到了类似的问题,指出可以通过手动更新jsc-android包来修复它。我已经在应用程序中安装了最新版本的jsc-android,但也面临着同样的问题。即使在最新版本上也会出现这种情况react-native: 0.61

其中一款设备是 Redmi Note 5(Android 版本 8.1.0)。

这是示例应用程序的屏幕截图(请忽略橙色条纹),显示不正确的时区。实际时区是 IST(印度标准时间)

截屏

您可以比较状态栏中的系统时间(上午 11:21)应用程序时间(上午 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;

Run Code Online (Sandbox Code Playgroud)

有什么建议么???

Gab*_*tes -6

每当我需要从某个位置获取正确的日期时,我都会使用此 API: http: //worldtimeapi.org/timezone/America/Sao_Paulo

也许它可以帮助你!