2015-08-03 75 views
-1

我是新来的c#如何将我的输入字符串转换为DateTime。将字符串转换为日期时间C#

_toDate = 5/22/2015 

我cannt使用

DateTime.ParseExact(_toDate, "yyyy-MM-dd", null); 

或者

Convert.ToDateTime(_toDate) 

抛出一个异常字符串未被识别为有效的DateTime。

注意:字符串的缩写与上面的缩写相同。

欣赏您的回复

+3

'yyyy-MM-dd'似乎不符合你的日期。 – Magnus

+0

可能重复[字符串未被识别为有效的日期时间“格式dd/MM/yyyy”](http://stackoverflow.com/questions/2193012/string-was-not-recognized-as-a-valid-datetime -format-dd-mm-yyyy) –

回答

9

显然,您的字符串和格式不匹配。

来自documentation;

将指定的日期和时间字符串表示形式转换为其等效日期时间的 。字符串表示的格式必须 与指定格式完全匹配

您需要使用M/dd/yyyy与具有/DateSeparatorInvariantCulture文化。

string _toDate = "5/22/2015"; 
DateTime myDate = DateTime.ParseExact(_toDate, "M/dd/yyyy", CultureInfo.InvariantCulture); 

当您使用null作为IFormatProvider,它的螺纹为您CurrentCulture,如果你CurrentCulture没有/作为DateSeparator,你会得到FormatException因为/ custom format specifier具有特殊的含义与当前的文化取代我或提供培养日期分离器

+0

@Downvoter照顾至少发表评论,以便我可以看到我可能会错的地方? –

+0

这适用于给定的具体情况,但它更可能是OP需要使用'M/d/yyyy'。这种格式不太可能会填满整天,而不是一个月。另外我不是下选举人。 – juharr

+0

@juharr这适用于特定情况,因为这是我们的唯一情况。你有一点,'d'说明符解析它,但由于OP试图用'dd'说明符解析它,所以有可能单日数字_may_具有前导零。 –

相关问题