【问题标题】:Chart shows wrong dates at X axis图表在 X 轴上显示错误的日期
【发布时间】:2014-02-25 15:08:58
【问题描述】:

我正在从 csv 文件中读取日期/时间和数据并将其存储在折线图中。我的日期/时间字符串是 1-1-2014 21:55:4218-02-2014 00:00:00 这实际上是第一个条目,我有几个小时的数据。

首先我将 chartArea X 轴标签样式设置为正确的格式:"d-M-yyyy HH:mm:ss"

然后我使用与上述相同的格式将我的实际日期字符串解析为 DateTime 格式:d-M-yyyy HH:mm:ss。并将数据添加到图表中。

我向您保证我的日期是正确的:

还有我的代码:

private void button2_Click_1(对象发送者,EventArgs e) { 字符串线; char[] 分隔符 = { ';', ',', '|' };

        chart1.Series["Series1"].XValueType = ChartValueType.Time;

        chart1.ChartAreas["ChartArea1"].AxisX.LabelStyle.Format = "d-M-yyyy HH:mm:ss";


        chart1.Series["Series1"].Points.Clear();


        using (System.IO.StreamReader sr = new System.IO.StreamReader(filename))
        {

            while (!sr.EndOfStream)
            {
                line = sr.ReadLine();
                DateTime newDateTime = new DateTime();

                string[] part = line.Split(delimiters);

                Console.WriteLine(part[0]);

                newDateTime = DateTime.ParseExact(
                    part[0],
                    "d-M-yyyy HH:mm:ss", 
                    CultureInfo.InvariantCulture
                    );

                chart1.Series["Series1"].Points.AddXY(newDateTime, part[5]);

            }

        }
        chart1.Refresh();
    }

【问题讨论】:

  • 代码中的 newdatetime 是什么?这是正确的日期吗?也许将其记录到文件或其他东西中。

标签: c# datetime charts msdn


【解决方案1】:

问题:您已将X-Axis 的自定义格式设置为d-M-yyyy HH:mm:ss,但您只是提供datetime 而不对其进行格式化。

替换这个:

chart1.Series["Series1"].Points.AddXY(newDateTime, part[5]);

有了这个:

chart1.Series["Series1"].Points.AddXY(
    newDateTime.ToString("d-M-yyyy HH:mm:ss"), part[5]);

【讨论】:

  • 非常感谢。你能详细说明为什么我必须再次格式化吗?我已经格式化了 labelStyle 和 newDateTime 变量。正如我所展示的,它的格式与我在将其添加到我的系列之前给出的格式完全相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
相关资源
最近更新 更多