为什么从C#解析从字符串到DateTime失败?

时间:2011-05-04 20:55:52

标签: c#

我的Mysql表中有一个DateTime eventDate字段,当我将其插入db时,我从输入中编写:

cmd.Parameters.Add("?eventDate", MySqlDbType.DateTime).Value = DateTime.ParseExact(txtEventDate.Text + " " + txtEventTime.Text,
                "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);

并保存得很好:

  

2011-05-05 10:20:00

现在,当我从数据库中读取它时,我希望将其拆分但如果我这样做则会失败:

txtEventDate.Text = DateTime.ParseExact(Reader.GetValue(7).ToString(), "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture).Date.ToShortDateString();
txtEventTime.Text = DateTime.ParseExact(Reader.GetValue(7).ToString(), "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture).TimeOfDay.ToString();

说:

  

字符串未被识别为有效的DateTime。

你看到有什么问题吗?我无法弄清楚我错在哪里......

3 个答案:

答案 0 :(得分:4)

将它转换为字符串并将其解析为日期时间似乎是多余的,这可能会引入意外日期格式的问题。

如果数据库中有Datetime,您也可以

  txtEventDate.Text = Reader.GetDatetime(7).ToShortDateString();
  txtEventTime.Text = Reader.GetDatetime(7).TimeOfDay().ToString();

答案 1 :(得分:1)

要格式化DateTime,请尝试这样的事情......

DateTime date = Reader.GetDateTime(7);
txtEventDate.Text = date.ToString("MM/dd/yyyy");
txtEventTime.Text = date.ToString("HH:mm:ss");

答案 2 :(得分:0)

您必须提供正确的格式。那可能是:

yyyy-dd-MM HH:mm:ss