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

GCP Dataform项目引入luxon时遇Intl is not defined错误求解决

解决Dataform中使用luxon遇Intl未定义的问题

问题原因

Dataform运行环境未内置ECMAScript的Intl国际化API,而luxon的toFormat方法依赖该API,导致编译时抛出Intl is not defined错误。

解决方案

方案一:改用原生JavaScript实现日期格式化

不需要依赖任何外部包,直接通过原生Date对象生成所需的日期后缀:

function getYesterdaySuffix() {
  const date = new Date();
  date.setDate(date.getDate() - 1);
  const year = date.getUTCFullYear();
  const month = String(date.getUTCMonth() + 1).padStart(2, '0');
  const day = String(date.getUTCDate()).padStart(2, '0');
  return `${year}${month}${day}`;
}

const TABLE_SHARDING_YESTERDAY_SUFFIX = getYesterdaySuffix();

module.exports = {
  TABLE_SHARDING_YESTERDAY_SUFFIX
}

方案二:保留luxon但规避Intl依赖

如果必须使用luxon,可直接获取日期的年、月、日数值,手动拼接格式,避开依赖Intl的toFormat方法:

const { DateTime } = require('luxon')

const yesterday = DateTime.utc().minus({ days: 1 });
const TABLE_SHARDING_YESTERDAY_SUFFIX = `${yesterday.year}${String(yesterday.month).padStart(2, '0')}${String(yesterday.day).padStart(2, '0')}`;

module.exports = {
  TABLE_SHARDING_YESTERDAY_SUFFIX
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 00:20:59