如何将任何格式化的文本框日期转换为DateTime(YYYY-mm-dd)格式

时间:2016-01-16 09:45:22

标签: asp.net datetime

我正在使用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"};

1 个答案:

答案 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.
}