C# - DateTime.Parse从字符串不起作用

时间:2014-05-30 10:18:23

标签: c# datetime

我以字符串格式获得了DateTime:

"05/30/2014 12:00:00"

我想通过这样做从这个字符串创建一个DateTime对象:

DateTime startDate = DateTime.Parse(startDate);

但是,我有一个错误,说这个方法有一些无效的参数:

Error 1 - The best overloaded method match for 'System.DateTime.Parse(string)' has some invalid arguments

当我阅读文档时,字符串参数绝对是一个很好的论据。我正在做什么出了什么问题?

4 个答案:

答案 0 :(得分:5)

使用DateTime.ParseExact并传递日期字符串中的格式。当前的文化可能有日期形式,其中的日期在月之前,如dd / mm / yy。

您正在将相同的变量传递给您为DateTime声明的ParseExact方法。更改DateTime对象的名称。

DateTime dtStartDate = DateTime.ParseExact(startDate, "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);

您可以阅读Custom Date and Time Format Strings中的文章,以便更好地理解解析日期字符串的格式。

答案 1 :(得分:1)

DateTime startDate = DateTime.ParseExact(strDate, "G", CultureInfo.InvariantCulture);

您可以在此here找到更多信息。

答案 2 :(得分:0)

在初始化之前,您似乎正在传递变量进行解析。

所以你可以:

DateTime startDate = DateTime.Parse("05/30/2014 12:00:00");
Console.WriteLine(startDate);  

或者,你可以:

String dateToParse = "05/30/2014 12:00:00";
DateTime startDate = DateTime.Parse(dateToParse);
Console.WriteLine(startDate);  

答案 3 :(得分:0)

将日期存储在字符串变量中,然后使用以下命令:

DateTime.Parse(STRINGVARIABLE);
//Which means following
//DateTime.Parse("05/30/2014 12:00:00");

在您的代码中,您正在尝试将格式应用于DateTime类型的变量。或者,如果要将格式直接应用于DateTime变量,则只需编写以下内容:

DateTime.Parse("05/30/2014 12:00:00").ToString("dd MMM yyyy");