问题描述
在以下场景中,将 unixTimestamp 转换为本地时间的最佳方法是什么?
- 我正在使用 Pub/Sub Subscription to BigQuery Template。 Dataflow 从 PubSub 获取 json 格式的数据,进行转换,插入 BigQuery
- 最好,我想使用 UDF 进行数据转换设置。
- (为简单起见,)输入数据仅包括 unixTimestamp。例子:
{"unixTimestamp": "1612325106000"}
- Bigquery 表有 3 列:
unix_ts:INTEGER,iso_dt:DATETIME,local_dt:DATETIME
unix_ts 将保持输入的 unixTimestamp 原样,iso_dt 将保持 UTC 日期时间,local_dt 将保持欧洲/法兰克福日期时间。
示例:1612325106000,2021-02-03T04:05:06,2021-02-03T05:05:06
我希望以下方法能奏效,但没有。 unix_ts 和 iso_dt 结果如预期,但 local_dt 是导致失败的部分。你的建议是什么?谢谢
function transform(injson) {
var input = JSON.parse(injson);
var v_date = new Date(parseInt(input.unixTimestamp));
var v_iso_dt = v_date.toISOString().replace('Z','');
var v_local_dt = v_date.toLocaleString('en-US',{timeZone: 'Europe/Frankfurt'});
var output = {
"unix_ts": input.unixTimestamp || null,"iso_dt": v_iso_dt || null,"local_dt": v_local_dt || null
};
}
编辑:(更改)示例中的 1612325106 到 1612325106000。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)