You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用expo-localization获取设备时区?Localization.timezone已弃用

Expo设备时区获取方案

虽然Localization.timezone被官方标记为弃用,但现阶段它还能正常使用——不过既然官方不推荐依赖这个字段,给你两个靠谱的替代方案:

方案一:直接使用JavaScript原生API

浏览器和React Native环境都支持标准的Intl API,无需额外依赖就能直接获取时区:

const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
console.log(timeZone); // 示例输出:"Asia/Shanghai"

这是ECMAScript的标准特性,兼容性好,返回的是IANA标准时区标识符(如"Europe/London"),格式通用适配各种场景。

方案二:结合expo-localization补全时区信息

如果需要将时区数据和getLocales()返回的Locale对象结合使用,可以通过原生API补准时区字段:

import { Localization } from 'expo-localization';

const locales = Localization.getLocales();
const userTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;

// 将时区信息合并到首个Locale对象中
const localeWithTimeZone = {
  ...locales[0],
  timeZone: userTimeZone
};

注意事项

  • Localization.timezone当前仍可正常调用,但未来版本可能被移除,建议优先采用原生Intl API方案。

内容的提问来源于stack exchange,提问作者Aleister Crowley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 23:35:18