将DateTime轴数据转换回DateTime

时间:2013-10-31 14:03:21

标签: c# wpf datetime oxyplot

我有一个LineSeries,其中DataFieldX值是DateTime,在视觉上它工作得很好但是在为图表实现OnClick之后我似乎无法将所选值转换回DateTime:

        Plot plot = sender as Plot;
        var series = plot.GetSeriesFromPoint(new ScreenPoint(e.GetPosition(plot).X, e.GetPosition(plot).Y), 10);
        var result = series.GetNearestPoint(new ScreenPoint(e.GetPosition(plot).X, e.GetPosition(plot).Y), true);
        var data = result.DataPoint;
        DateTime dt = new DateTime();
        dt = dt.AddSeconds(data.X);

data.X是41577.61596880656,图表中该点的时间是31/10/2013 14:47。 dt最终成为01.01.0001 11:32:57

如何成功将data.X转换回DateTime?

2 个答案:

答案 0 :(得分:2)

您需要添加天数,而不是1899年12月31日的秒数

DateTime dt = new DateTime(1899,12,31);
dt = dt.AddDays(data.X);

出于某种原因,当我跑步时,我会在0.3秒内完成。我假设这是基于数据存储格式的精确度。

enter image description here

答案 1 :(得分:2)

DateTimeAxis.ToDateTime()不执行所需的转换吗?