我正在使用date function.data有不同的格式,如
1" 2016年1月31日"
2" 31-01-2016"
3" 31/01/2016"
4" 2016/01/31#34;
5。" 2016年1月1日"
6。" 2016-01-02 12:00 AM"
现在我想将上述所有格式日期转换为DateTime格式YYYY-mm-dd。
我尝试了很多方法,但某些格式显示错误消息,如
'字符串格式不正确'
'无法将字符串值转换为日期时间'
我试过了,
Datetime date=DateTime.ParseExact(txtdate.Text,'YYYY-mm-dd',CultureInfo.InvariantCulture);
如何从任何格式的文本框值转换/转换为日期时间格式(YYYY-mm-dd)。
在上传到服务器(GoDaddy和Microsoft azure)后,我发现错误很多。
我可以像这样使用
string dateTimes = txtdate.Text;
string[] dateTimes = new string[] { "YYYY-mm-dd", "dd-mm-YYYY","mm/dd/YYYY","yyyy/MM/dd"};
答案 0 :(得分:1)
您的代码不太正确。日期格式字符串应该用“(双引号)包围,外壳应该像”yyyy-MM-dd“。CultureInfo.InvariantCulture
拼写错误。
话虽如此,您不需要使用ParseExact
函数将字符串转换为DateTime
格式。您只需使用Convert.ToDateTime
以下是我用来测试Convert.DateTime
函数的一些示例代码:
string[] dateTimes = new string[] { "2010-02-01", "02-03-2011", "03/04/2012", "2013/05/04", "june 05 2014", "2015-07-06 11:00 AM" };
StringBuilder sb = new StringBuilder();
foreach (string date in dateTimes)
{
DateTime dt = Convert.ToDateTime(date);
sb.AppendLine(dt.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));
}
string convertedDateTimes = sb.ToString();
使用上面的相关部分,您可以将代码更改为以下内容:
try
{
Datetime date = Convert.ToDateTime(txtdate.Text.Trim());
string dateString = date.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
}
catch (FormatException ex)
{
//Handle the exception. e.g. show a message or print something to the form.
}