1

我有日期时间输入字段,我从中获取日期并将其转换为另一种格式,我的代码

try
{
    DateTime dt = dtiFrom.Value.Date;
    string format = "DD-MM-YYYY"; // Use this format
    MessageBox.Show(dt.ToString(format)); // here its shows result as DD-10-YYYY
    DateTime dt1 = Convert.ToDateTime(dt.ToString(format)); // here Error "The string was not recognized as a valid DateTime. There is an unknown word starting at index 0."
}
catch (Exception ee)
{
    MessageBox.Show(ee.Message, "Error Message!");
}

我无法根据我的格式转换日期。请任何人帮助我编写代码或建议我一些代码。提前致谢

4

2 回答 2

5

您的格式应如下所示:

string format = "dd-MM-yyyy";

大小写对于字符串格式很重要,您可能会认为月份使用大写很奇怪,但这是因为小写m并且mm用于表示分钟。

请注意,您的输出显示的原因DDYYYY因为任何未保留为格式字符的字符都将原封不动地输出。大写D并且Y不保留,这就是它们显示在输出中的原因,就像-保持不变一样。

如果您希望输出保留格式字符,则可以使用\.

有关日期和时间格式值的完整列表,请参见此处

于 2013-10-30T09:46:52.270 回答
1

应更改日期模式格式并更好地使用TryParseExact而不是使用 Convert

DateTime dt = dtiFrom.Value.Date;
string format = "dd-MM-yyyy";
DateTime dt1 = new DateTime();

if (DateTime.TryParseExact(dt , format, null , DateTimeStyles.None, out dt1))
{
  // you can use dt1 here
}
else
{
  MessageBox.Show("Error Massage");
}
于 2013-10-30T09:59:07.897 回答