0

如何将“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();

但出现错误:字符串未被识别为有效的日期时间。

4

6 回答 6

3

日期格式应为:

string strOutputDateFormat = "yyyy-MM-dd";

要将字符串解析为日期,请使用DateTime.ParseExact方法和格式说明符

于 2012-07-19T11:01:02.697 回答
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);

编辑:这里替换strDatetxtDate.Text您的代码

于 2012-07-19T11:02:16.003 回答
1

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

string strOutputDateFormat = "yyyy-MM-dd";

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

txtDate.Text = dtInputDate.ToString(strOutputDateFormat);

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

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

希望这可以帮助

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

于 2012-07-19T11:02:23.540 回答
1

试试下面的代码。

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

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

输出在此处输入图像描述

于 2012-07-19T11:13:51.803 回答
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 方法(字符串、字符串、IFormatProvider)

DateTime.ParseExact 方法(字符串、字符串、IFormatProvider、DateTimeStyles)

甚至

DateTime.TryParseExact 方法(字符串、字符串、IFormatProvider、DateTimeStyles、DateTime%)

于 2012-07-19T11:03:37.380 回答
0

您的代码应该类似于

txtDate.Text = DateTime.Parse(txtDate.Text).ToString("yyyy-MM-dd"); 
于 2012-07-19T11:03:51.077 回答