使用MS Chart

时间:2016-11-07 17:36:41

标签: c# timezone mschart dst

我使用MS Chart在折线图上显示时间序列数据。数据点具有时间戳和值。我正在使用DateTimeOffset对时区进行编码以及相对于UTC时间保存日间。

chart = new Chart();
var chartArea = new ChartArea("Name");
chartArea.Position = new ElementPosition(xChartArea, yChartArea, wChartArea, hChartArea);
chartArea.InnerPlotPosition = new ElementPosition(xInnerPlot, yInnerPlot, wInnerPlot, hInnerPlot);

var series = new Series(seriesName)
                {
                    ChartArea = ChartAreaName,
                    XValueType = ChartValueType.DateTimeOffset,
                }
foreach(var record in records)
{
  chart.Series[0].Points.AddXY(record.dateTimeOffset.DateTime.ToOADate(), record.value);
}

由于日间节能(DST)的变化,图表会像enter image description here

一样

显示由于DST更改而在值1处的冗余行。 如果插入像这样的

系列中的UTCDateTime而不是DateTime
foreach(var record in records)
{
  chart.Series[0].Points.AddXY(record.dateTimeOffset.UtcDateTime.ToOADate(), record.value);
}

我在X轴上放松了当地时间和夏令时: enter image description here

我需要将曲线显示为第二个图表,但X轴应显示DST的跳跃,我该如何实现? 如何将本地或DST传递给MS Chart?

0 个答案:

没有答案