我使用“ utc” vega刻度来显示UTC时间的数据,但是当我将鼠标悬停在图表中的项目时,工具提示会以本地格式显示日期。如何在Vega工具提示中显示UTC数据?
这是vega工具提示配置
let options = {
showAllFields: false,
fields: [
{
field: "x",
title: "Time",
formatType: "time",
format: "%x %X "+ this.props.data.Timezone
},
{
field: "y",
title: "Value",
formatType: "number"
},
{
field: "value",
title: "Time",
formatType: "time",
format: "%x %X "+this.props.data.Timezone
},
{
field: "label",
title: "Data",
formatType: "string"
},
{
field: "info",
title: "Info",
formatType: "string"
},
{
field: "startTime",
title: "Start",
formatType: "time",
format: "%x %X "+this.props.data.Timezone
},
{
field: "endTime",
title: "End",
formatType: "time",
format: "%x %X "+this.props.data.Timezone
}
]
}
vegaTooltip.vega(vegaView, options);
答案 0 :(得分:0)
我无法判断您摄取的日期数据,但是最近在https://github.com/altair-viz/altair/pull/1053中对此进行了讨论。
问题的核心在于,您必须以ISO-8601标准解析日期时间数据,以使浏览器将其解析为UTC,如果您以其他格式解析数据,它将采用本地时区:< / p>
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse
假定时区的差异
给出日期字符串“ 2014年3月7日”,parse()假定为本地时间 区域,但考虑到ISO格式(例如“ 2014-03-07”), UTC的时区(ES5和ECMAScript 2015)。因此,日期对象 使用这些琴弦产生的声音可能代表不同的时刻 取决于支持的ECMAScript版本,除非系统是 设置为UTC的本地时区。这意味着两个日期字符串 看起来等效的结果可能会导致两个不同的值,具体取决于 要转换的字符串的格式。