转换日期格式时无法识别字符串

时间:2012-07-19 10:58:03

标签: c# visual-studio-2008 datetime

如何将“dd / mm / yyyy”转换为“yyyy-mm-dd”格式。 我试过这样的话:

 DateTime dtInputDate = DateTime.Parse(txtDate.Text); //txtDate.Text = "19/07/2012"
 string strOutputDateFormat = "YYYY-MM-DD";
 dtInputDate.ToString(strOutputDateFormat);
 txtDate.Text = dtInputDate.ToShortDateString();

但收到错误: 字符串未被识别为有效的DateTime。

6 个答案:

答案 0 :(得分:3)

日期格式应为:

string strOutputDateFormat = "yyyy-MM-dd";

要使用DateTime.ParseExact方法和format specifiers解析日期字符串。

答案 1 :(得分:1)

您可以使用Parse Exact,并将格式指定为"d/M/yyyy"

 string strDate = "19/07/2012";
 DateTime dtInputDate = DateTime.ParseExact(strDate, "d/M/yyyy", CultureInfo.InvariantCulture); //txtDate.Text = 
 string strOutputDateFormat = "yyyy-MM-dd";
 Console.Write(dtInputDate.ToString(strOutputDateFormat));
 strDate = dtInputDate.ToString(strOutputDateFormat);

修改:此处将strDate替换为txtDate.Text代码

答案 2 :(得分:1)

尝试以下操作,看看具体如何,日期格式区分大小写:

string strOutputDateFormat = "yyyy-MM-dd";

你的代码的第三行和第四行也没有做任何有用的事情!您需要将两者替换为:

txtDate.Text = dtInputDate.ToString(strOutputDateFormat);

dtInputDate.ToString(strOutputDateFormat);正在返回一个值,但您没有将此值分配给任何变量,并且dtInputDate.ToShortDateString();不会以yyyy-MM-dd格式输出您的日期。

如果您的代码的第一行出现错误,请确保txtDate.Text实际上包含“19/07/2012”并且您没有将其放入另一个文本框中,并检查文本框是否为think命名为txtDate.Text实际上是!

希望这有帮助

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

答案 3 :(得分:1)

尝试以下代码。

DateTime dtInputDate = DateTime.Parse(this.txtDate.Text); 

this.txtDate.Text = dtInputDate.ToString(String.Format("yyyy-MM-dd", dtInputDate.ToShortDateString()));

Output enter image description here

答案 4 :(得分:0)

尝试像

这样的东西
DateTime dtInputDate = DateTime.ParseExact(txtDate.Text,"dd/MM/yyyy",null,DateTimeStyles.None);
string strOutputDateFormat = "yyyy-MM-dd";
txtDate.Text = dtInputDate.ToString(strOutputDateFormat);

DateTime.ParseExact Method (String, String, IFormatProvider)

DateTime.ParseExact Method (String, String, IFormatProvider, DateTimeStyles)

甚至

DateTime.TryParseExact Method (String, String, IFormatProvider, DateTimeStyles, DateTime%)

答案 5 :(得分:0)

您的代码应该是

txtDate.Text = DateTime.Parse(txtDate.Text).ToString("yyyy-MM-dd");