区域设置转换器

解析区域设置标识符,预览数字/日期/货币格式,并排比较不同区域设置

常用区域设置

浏览器支持

输入区域设置标识符以查看解析结果和格式预览...

浏览器原生

由内置 Intl API 驱动,无需服务器调用,无需外部依赖,可离线使用,保护隐私。

实时预览

输入时即时查看任何区域设置的数字、日期、货币和列表的格式化效果。

全面分析

解析区域设置组件,以多种语言显示名称,并排比较两个区域设置。

常见问题

什么是区域设置标识符?

区域设置标识符是一个短字符串,用于标识语言、地区、文字和其他偏好的特定组合。常见格式包括 BCP 47 标签(en-US、zh-Hans-CN)和 POSIX 标识符(en_US.UTF-8)。它们决定了文本、数字、日期和货币的显示方式。

BCP 47 和 POSIX 区域格式有什么区别?

BCP 47 使用连字符分隔组件(en-US、zh-Hans-CN),是 Web 技术的标准。POSIX 使用下划线(en_US、zh_Hans_CN.UTF-8),在 Unix/Linux 系统中常见。两者标识相同的区域设置,但使用不同的语法约定。

这个工具是如何在没有服务器的情况下工作的?

此工具使用浏览器内置的 Intl API 系列(Intl.Locale、Intl.NumberFormat、Intl.DateTimeFormat、Intl.DisplayNames 等)来解析区域设置标识符并生成格式预览。所有处理都在浏览器中完成,不会向任何服务器发送数据。

为什么某些区域设置在不同浏览器中显示不同结果?

Intl API 的实现和区域设置数据因浏览器和操作系统而异。Chrome、Firefox 和 Safari 可能使用不同版本的 Unicode CLDR 数据,导致格式上的细微差异。结果中显示的解析后区域设置反映了浏览器实际使用的设置。

"解析后区域设置"是什么意思?

当您请求 "en" 这样的区域设置时,浏览器可能会根据其可用数据将其解析为更具体的区域设置,如 "en-US" 或 "en-Latn-US"。解析后的区域设置是浏览器实际用于格式化的区域设置,可能与您的输入不同。

了解区域设置标识符

BCP 47 结构

BCP 47 语言标签由用连字符分隔的子标签组成:语言(必需,2-3 个字母)、文字(可选,4 个字母)、地区(可选,2 个字母或 3 个数字)和变体(可选)。示例:

  • 仅语言 en, zh, ar
  • 语言+地区 en-US, zh-CN, pt-BR
  • 语言+文字 zh-Hans, sr-Latn
  • 完整标签 zh-Hans-CN, en-Latn-US

Intl API 实践

JavaScript Intl API 系列提供了区域设置感知的数字、日期、列表、相对时间等格式化功能。使用 Intl.Locale 解析标识符,Intl.DisplayNames 获取人类可读名称,Intl.NumberFormat/DateTimeFormat 进行格式化。

  • new Intl.Locale("zh-Hans-CN") — parse
  • Intl.DisplayNames — display names
  • Intl.NumberFormat — numbers
  • Intl.DateTimeFormat — dates

最佳实践: 始终使用最适合您需求的最具体的区域设置标签。对于 Web 应用程序,使用 navigator.language 获取用户的首选语言,并提供优雅的回退机制。在开发早期就使用多种区域设置进行测试。

已复制到剪贴板!