Intl Energy Units ?
中文标题:Intl 能源单位
- 阶段: 未分阶段
- 状态: 进行中
- ECMAScript 版本: —
- 同步时间: 2026年8月26日
- English original · 官方仓库
该提案旨在向 Intl.NumberFormat 添加 watt、kilowatt 和 kilowatt-hour 作为受认可的单单位,解决 ECMAScript 在能源和功率格式化方面缺乏原生支持的问题。它提出对 ECMA-402 进行纯新增的更改,利用现有的 CLDR 定义,并包括 API 示例和复合单位用例。
以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。
提案:向 ECMA-402 添加功率与能源单位(W、kW、kWh)
状态
阶段:0(正在寻找 champion)
Champion:待定
作者:Johan Røed (@johanrd)
动机
电动汽车、工程机械和建筑系统在其 API 中报告能源消耗。越来越多的 Web 应用正在被开发,以支持交通、工业和建筑环境的电气化。
如果 ECMAScript 能够在 Intl.NumberFormat 中提供 watt、kilowatt 和 kilowatt-hour 作为受支持的单位,将有助于简化这些应用的开发。
目前,开发者必须手动格式化这些单位。
相关问题:https://github.com/tc39/ecma402/issues/739
用例
1. 能源消耗(kWh)
2. 功率额定值(W、kW)
3. 复合单位
- 能效标签 —
kilowatt-hour-per-year(欧盟能效标签) - 碳核算 —
gram-per-kilowatt-hour(CO₂eg/kWh) - 电动汽车效率 —
kilowatt-hour-per-kilometer、kilowatt-hour-per-mile(CLDR 也将kilowatt-hour-per-100-kilometer定义为单位标识符) - 能量密度 —
kilowatt-hour-per-liter(电池规格) - 能源强度 —
kilowatt-hour-per-kilogram(工业生产)
提议的解决方案
向 ECMA-402 §6.6.2(IsSanctionedSingleUnitIdentifier),表 2 添加三个受认可的单单位标识符:
这三个单位涵盖了绝大多数面向消费者的能源应用。ECMA-402 从 CLDR 中吸取内容;这些标识符已经定义并本地化。
AvailableCanonicalUnits() 必须在其返回集中包含这三个新标识符。
API 示例
窄宽度,美式英语区域:
短宽度,法语区域:
长宽度,德语区域:
跨区域的功率额定值:
复合单位(一旦基本单位受认可):
今天(本提案之前),这些会抛出 RangeError:
技术考虑
- CLDR 支持:所有提议的单位已经在 Unicode CLDR 中定义,并在所有支持的区域中具有完整的本地化(unit.xml)
- 无破坏性变更:纯新增
- 最小有效载荷影响:数据已存在于 CLDR 中,三个单位代表最小增量。
- 与现有模式一致:遵循与
kilogram/kilometer、fluid-ounce相同的约定 - 用户空间的变通方法和错误:没有原生支持,开发者使用像 convert-units(每周约 15 万 npm 下载)这样的库,或构建自定义格式化逻辑,导致区域错误(de-CH kWh bug、损坏的分隔符)
- 规范更新:§6.6.2 IsSanctionedSingleUnitIdentifier(表 2)和 AvailableCanonicalUnits() 返回集
呼吁
能源单位比现有的受认可单位如 stone(英国/爱尔兰体重)、acre(土地面积)或 fluid-ounce(区域体积测量)具有显著更广泛的实用性,具有通用的 SI 标准化和快速增长的面向 Web 的应用:
- 电动汽车:预计到 2030 年将达到 4000 万辆年销量[2](充电网络:ChargePoint 每月超过 100 万次会话[3]、EVgo 超过 140 万司机[4])
- 建筑能源管理:由欧盟 EPBD 指令授权[1]
- 智能家居市场:2024 年 1010 亿美元[5],预计到 2032 年达到 2260 亿美元(Home Assistant:超过 200 万安装[6])
- 能源公用事业门户:美国主要公用事业公司(PG&E:1600 万人[7]、SCE:1500 万人[8])提供基于 kWh 的 Web 仪表盘
社区支持
Issue #739 已收到 15 个 👍 反应。还有一个 Discourse 上的线程。
CLDR
TC39-TG2 已建议将能源单位偏好数据添加到 CLDR 作为推进此提案的下一步。一旦此数据存在于 CLDR 中,Stage 1 Smart Unit Preferences 提案将为 ECMAScript 带来区域感知的自动单位选择——包括通过 CLDR 的 geq 阈值进行基于量级的缩放。
单位标识符可用性
未来考虑
如果 watt-hour 被添加到 CLDR,它还将启用电池容量格式化(笔记本电脑和便携式设备的 Wh)。参见 为什么是 watt-hour?
如果出现需求,未来提案中可以考虑附加单位:
在 CLDR 中定义:
megawatt- 工业和发电设施gigawatt- 大规模电力基础设施milliwatt- 低功率电子设备
目前在 CLDR 中没有:
watt-hour- 能源缩放的基本单位。参见 为什么是 watt-hour?megawatt-hour- 公用事业规模的能源测量gigawatt-hour- 公用事业规模的能源测量milliampere-hour– 用于电子产品和电池的mAh
较低优先级:
joule、kilojoule- 科学应用(独立领域)british-thermal-unit- HVAChorsepower- 汽车(小众 Web 使用)calorie、kilocalorie、foodcalorie- 营养学(独立领域)
注意:能源价格比较(货币/kWh)是一个主要的面向消费者的用例,但 ECMA-402 目前不支持货币每单位的复合格式化。
常见问题解答
为什么是这三个单位?
它们涵盖了 Web 开发中绝大多数面向消费者的能源应用。从聚焦开始可以实现更快的采用,并且所有三个单位已经在 CLDR 中定义了生产质量的格式化。
为什么是 watt-hour?
watt-hour 尚未在 CLDR 中作为显式单位定义,因此本提案从目前具有生产质量 CLDR 支持的三个单位开始。如果 watt-hour 被添加到 CLDR,它也可以被包含在 ECMA-402 中——并且有充分的理由考虑它:
它是能源缩放的天然基本单位。 watt-hour 将启用完整的前缀链——Wh、kWh、MWh、GWh。现实世界的应用跨越整个范围:从设备消耗的 Wh(HA 线程)到电网规模报告的 GWh(Electricity Maps)。如果 Smart Unit Preferences 提案(Stage 1)落地,CLDR 中的 watt-hour 将使能源单位获得自动的基于量级的缩放——没有它,能源将成为少数没有适当缩放支持的常见测量领域之一。
当前的复合构造产生次优的格式化。 CLDR 可以从组件(power-watt + duration-hour)构造 watt-hour,但结果不是生产质量的:
构造的格式使用分隔符(⋅)和 hr,而不是自然的 Wh。其他区域也有类似问题(德语:W⋅Std. 而不是 Wh)。CLDR-17881 认识到常用的复合单位应该有显式定义以获得更好的格式化。
这不会增加包体积吗?
这些单位在 CLDR 中定义,并在所有支持的区域中本地化。浏览器可能需要为这三个单位提供额外的翻译字符串。然而,每单位的数据很小(单位名称、缩写和语法形式),三个单位代表最小的增加。
参考
- CLDR-19201:https://unicode-org.atlassian.net/browse/CLDR-19201
- Smart Unit Preferences(Stage 1):https://github.com/tc39/proposal-smart-unit-preferences
- Issue #739:https://github.com/tc39/ecma402/issues/739
- Issue #605:https://github.com/tc39/ecma402/issues/605(相关:metric-ton、cubic units)
- CLDR 单位有效性:https://github.com/unicode-org/cldr/blob/main/common/validity/unit.xml
- CLDR 单位偏好:https://www.unicode.org/cldr/charts/45/supplemental/unit_preferences.html
- ECMA-402 规范:https://tc39.es/ecma402/





