如何为轻量级图表设置自定义时区?
我有一个像这样的轻量级图表设置。我想添加某种配置,以便图表可以向我显示本地时间,而不是通过 Unix 时间戳传递的通用时间,例如,它与我的时间相差几个小时。另一种可能性是修改 Unix 时间戳。
var chart = LightweightCharts.createChart(document.getElementById("charts"), {
width: 1060,
height: 537,
layout: {
backgroundColor: "#161616",
textColor: "rgba(255, 255, 255, 0.9)",
fontSize: 15,
fontFamily: "Ubuntu",
},
grid: {
vertLines: {
color: "#424242",
width: 0.3,
},
horzLines: {
color: "#424242",
width: 0.3,
},
},
crosshair: {
mode: LightweightCharts.CrosshairMode.Normal,
},
priceScale: {
borderColor: "rgba(197, 203, 206, 0.8)",
size: 5,
},
timeScale: {
borderColor: "rgba(197, 203, 206, 0.8)",
timeVisible: true,
secondsVisible: false,
rightBarStaysOnScroll: true,
},
});
回答
我已经在这里发布了类似的问题,但到目前为止还没有发布答案。
我看到 2 种方法可以帮助您解决此问题:
- 您可以通过向时间添加 TZ 偏移量来修改条形图的源时间(我认为这是首选方式 - 见下文)
- 您可以覆盖
tickMarkFormatter,dateFormat并timeFormatter使用所需的 TZ 偏移正确格式化日期。
我认为第一种方式(添加偏移量)是首选,因为它也会影响刻度线的生成及其权重,因此您的时间刻度看起来会好得多而没有问题(例如,您可以看到23:00时间而不是30天,因为您添加了一个偏移 60 分钟,它会稍微移动时间刻度)。