我想获得手机用户的时区,这样我可以添加或者到.减去与UTC时间,我从我的API获得,然后就这些操作(通知,例如).
我只找到了如何使用DatePickerIOS添加偏移量,但没有别的......是否可以从前面获取它?
use*_*145 47
我发现最好获取实际的时区ID(例如America/New_York),然后将服务器程序设置为在开始时使用该时区.为此,请使用react-native-device-info库:https://www.npmjs.com/package/react-native-device-info
import DeviceInfo from 'react-native-device-info';
console.log(DeviceInfo.getTimezone()); // 'America/New_York'
Run Code Online (Sandbox Code Playgroud)
如果在编译期间收到有关'tvOS'的错误,请参阅此修复程序:https://github.com/rebeccahughes/react-native-device-info/issues/286
Bra*_*ugh 14
你可以在浏览器上用JavaScript做任何事情(当然除外),你可以在React Native中做.我会发起一个新的日期对象并调用getTimezoneOffset()它来获取时区在本地偏移的分钟数.
var date = new Date();
var offsetInHours = date.getTimezoneOffset() / 60;
Run Code Online (Sandbox Code Playgroud)
小智 11
为了在 React Native(或在网络上)中获取时区,我使用以下命令:
Intl.DateTimeFormat().resolvedOptions().timeZone
Run Code Online (Sandbox Code Playgroud)
它返回类似:“America/Los_Angeles”
我建议不要使用偏移,因为它不能满足夏令时或操作系统可以进行的任何其他调整.
而是让JavaScript为您进行UTC转换.此SO答案显示了一个示例:使用JavaScript将UTC日期时间转换为本地日期时间
如果你需要转换为任意时区,你应该看看使用像moment.js这样的库,原因与我上面提到的相同.
我还需要在我的 React Native App 中获取时区。但是我需要以 IANA 格式而不是偏移量获取时区。
上面建议的库"react-native-device-info"不推荐使用 timeZone 方法,因此我不得不搜索更新的替代方案。
我正在使用 expo 并且在使用“react-intl”库时遇到了问题,但我发现了两个可以完成这项工作的库:
“react-native-localize”库是一个不错的选择。
console.log(RNLocalize.getTimeZone());
// -> "Europe/Paris"
Run Code Online (Sandbox Code Playgroud)
console.log(Localization.timezone);
// -> "Europe/Paris"
Run Code Online (Sandbox Code Playgroud)
小智 5
如果使用Expo构建项目,则可以使用Localizationobject。
进口:
import { Localization } from 'expo';
Run Code Online (Sandbox Code Playgroud)
使用:
console.log(Localization.timezone)
Run Code Online (Sandbox Code Playgroud)
它将以显示格式(例如)返回当前时区America/Los_Angeles。
| 归档时间: |
|
| 查看次数: |
21792 次 |
| 最近记录: |