字符串未被识别为有效的DateTime,2019年7月11日

时间:2019-07-29 17:34:02

标签: c# parsing type-conversion

我有一个字符串来自Griview单元。该字符串的值为Jul 11, 2019。我需要将其转换为yyyy-MM-dd格式,但是在尝试转换时出现错误。

到目前为止,我已经尝试了以下方法:

  • DateTime.ParaExact(Startdatebefore, "yyyy-MM-dd",Null)
  • String.Convert("yyyy-MM-dd")

这是上下文的代码示例:

string Startdatebefore = item.Cells[4].Text;
string StartDate = DateTime.ParseExact(Startdatebefore, "yyyy-MM-dd", null).ToString();
---- // The second way of trying to convert is below and this also is not working. 
DateTime EndDate = Convert.ToDateTime(item.Cells[4].Text);
string EndDatedone = EndDate.ToString("yyyy-MM-dd");

但是我仍然遇到错误。

我在哪里出错?我在Stack和Google上检查了很多问题,但大多数问题之前都是数字日期格式,与我遇到的错误不符。如果您有任何疑问,请告诉我。

2 个答案:

答案 0 :(得分:2)

字符串“ Jul 11​​,2019”应该可以通过正常的DateTime解析器进行解析。然后,您可以将所需的格式提供给DateTime的ToString方法。

var formatted = DateTime.Parse("Jul 11, 2019").ToString("yyyy-MM-dd");
Console.WriteLine(formatted); // 2019-07-11

答案 1 :(得分:0)

//get the string
string Startdatebefore = item.Cells[4].Text;
// Parse to DateTime using the original **source** format:
DateTime StartDate = DateTime.ParseExact(Startdatebefore, "MMM dd, yyyy", null);
// create the string from the DateTime using the **target** format
Startdatebefore = StartDate.ToString("yyyy-MM-dd");

或一行:

string Startdatebefore = DateTime.ParseExact(Startdatebefore, "MMM dd, yyyy", null).ToString("yyyy-MM-dd");

最后一点:如果您这样做是为了将其包含在SQL语句中,那么您所做的事情非常错误。