我有一个这样的字符串,我想将其转换为DateTime格式(MM / dd / yyyyTHH:mm:ss)。 但它失败了,请让我知道我哪里错了。
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
string stime = "4/17/2014T12:00:00";
DateTime dt = DateTime.ParseExact(stime, "MM/dd/yyyyTHH:mm:ss", CultureInfo.InvariantCulture);
这是代码,我是如何设置此字符串的:
string startHH = DropDownList1.SelectedItem.Text;
string startMM = DropDownList2.SelectedItem.Text;
string startSS = DropDownList3.SelectedItem.Text;
string starttime = startHH + ":" + startMM + ":" + startSS;
string stime = StartDateTextBox.Text + "T" + starttime;
获得此异常
String was not recognized as a valid DateTime.
答案 0 :(得分:2)
您在格式字符串中写了MM
,这意味着您需要两个月的月份。如果您想要一个月的数字,请使用M
。
DateTime dt = DateTime.ParseExact(stime, "M/dd/yyyyTHH:mm:ss", CultureInfo.InvariantCulture);
另一种解决方案是更改字符串以匹配您的格式。
string stime = "04/17/2014T12:00:00";
DateTime dt = DateTime.ParseExact(stime, "MM/dd/yyyyTHH:mm:ss", CultureInfo.InvariantCulture);
关键是要记住你正在做parse exact.因此,你必须将你的字符串与你的格式完全匹配。
答案 1 :(得分:1)
4/17/2014T12:00:00
中的 问题:您只有一位Month
值(4),但在您的DateFormat字符串中,您提到了双MM
解决方案:您应指定单M
而不是双MM
试试这个:
DateTime dt = DateTime.ParseExact(stime, "M/dd/yyyyTHH:mm:ss",
CultureInfo.InvariantCulture);
答案 2 :(得分:0)
注意您的日期字符串每月仅包含1位数字,但您的模式定义MM
因此,要么使用月04
,要么将模式更改为M
。