Get the time zone with React Native
我想获得手机用户的时区,以便我可以将其添加或减去我从API获得的UTC时间,然后对它们进行操作(例如,用于通知)。
我只找到了如何使用DatePickerIOS添加偏移量,但没有别的......是否可以从前面获取它?
我发现最好获取实际的时区ID(例如
1 2 3 | import DeviceInfo from 'react-native-device-info'; console.log(DeviceInfo.getTimezone()); // 'America/New_York' |
如果在编译期间收到有关'tvOS'的错误,请参阅此修复程序:https://github.com/rebeccahughes/react-native-device-info/issues/286
你可以在浏览器上用JavaScript做任何事情(当然除外),你可以在React Native中做。我将启动一个新的日期对象并在其上调用
1 2 | var date = new Date(); var offsetInHours = date.getTimezoneOffset() / 60; |
我建议不要使用偏移,因为它不能满足夏令时或操作系统可以进行的任何其他调整。
而是让JavaScript为您进行UTC转换。此SO答案显示了一个示例:使用JavaScript将UTC日期时间转换为本地日期时间
如果你需要转换为任意时区,你应该看看使用像moment.js这样的库,原因与我上面提到的相同。
如果使用Expo构建项目,则可以使用
进口:
1 | import { Localization } from 'expo'; |
使用:
1 | console.log(Localization.timezone) |
它将以显示格式返回当前时区,例如