将字符串解析为日期时间格式

时间:2019-03-16 05:08:53

标签: c#

我在这里有一个小问题,想知道我的错误在哪里以及如何纠正它。

string preConvDATE = monthCombobox2.Text + " " + datecombobox2.Text + ","+ "0000";
//lets say the comboboxes contain something like this "January 1";

DateTime DT = DateTime.ParseExact(preConvDATE, "MMMM d, yyyy 00:00:00", System.Globalization.CultureInfo.InvariantCulture);
string strDate = DT.ToString("yyyy-mm-dd");
    try
    {
       //code that inserts strDate to a column in Mysql DB
    }
    catch
    {
      //msg
    }

为什么年份为“ 0000”?因为我确实打算只存储月份和日期,但是意识到我可以将其存储为带有一年的日期时间格式,然后在查看表时只使用串联的Mysql MONTH()和DATE()函数查看monthCombobox2datecombobox2中存储的月份和日期。

我也尝试过:

Convert.ToDateTime()

但仍然无法正常工作。

如何正确解析MMMM d,yyyy日期格式,以便可以再次将其转换为yyyy-mm-dd并将其存储为datetime格式在数据库中? 非常感谢:)

1 个答案:

答案 0 :(得分:2)

正如我所看到的,您正在使用文本框来捕获月份和日期的值,而不是使用下拉菜单,该下拉列表将显示月份名称,但返回值,如01表示一月,依此类推。您可以轻松格式化日期格式。您不希望保存年份,可以设置当前年份,而不是设置0000。现在的问题是您将无法确定确切的日期(例如星期日,星期一等)。

string preConvDATE = monthCombobox2.Text + "/" + datecombobox2.Text+"/" + DateTime.Now.Year.ToString();
DateTime DT = DateTime.ParseExact(preConvDATE, "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture);

string strDate = DT.ToString("yyyy-MM-dd");

我希望这可以解决您的问题。编码愉快!