如何在vega-tooltip“版本”中显示UTC时间:“ 0.5.1”,

时间:2018-07-12 16:31:24

标签: vega

我使用“ 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);

1 个答案:

答案 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的本地时区。这意味着两个日期字符串   看起来等效的结果可能会导致两个不同的值,具体取决于   要转换的字符串的格式。