Uni-App Intl获取时区在 Android 失效的解决方法
Uni-App Intl获取时区在 Android 失效的解决方法
在 uniapp 中使用 js 获取时区编译到 android 端会提示ReferenceError: Intl is not defined
Intl.DateTimeFormat().resolvedOptions().timeZone // 'Asia/Shanghai'Intl是浏览器的对象,可以通过它的一系列方法获取时区
目前大部分浏览器都支持Intl。ios也支持,但是安卓app是不支持的
解决办法
通过 uni.getSystemInfoSync() 获取到设备平台,条件判断 android 端使用HTML5+ 语法获取时区
let timeZone = 'unknown'
if (uni.getSystemInfoSync().platform === 'android') {
// 引入相关的java类,uniapp中使用plus.android.importClass
timeZone = plus.android.importClass('java.util.TimeZone').getDefault().getID()
} else {
timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone
}