如何将“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。
答案 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
实际上是!
希望这有帮助
答案 3 :(得分:1)
尝试以下代码。
DateTime dtInputDate = DateTime.Parse(this.txtDate.Text);
this.txtDate.Text = dtInputDate.ToString(String.Format("yyyy-MM-dd", dtInputDate.ToShortDateString()));
答案 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");