我知道之前已经问过这个问题并使用各种方法解决了。
我正在将字符串中的值转换为DateTime。
在整个项目中,我使用了相同的CultureInfo,所有使用Convert.ToDateTime()转换为日期的字符串,但现在有一个文本字段拒绝转换。
我试过了:
string date = "27/02/2013";
string startdated = (Convert.ToDateTime(date)).ToString("yyyy/MM/dd");
(转换为datetime并将其更改为我所需格式的sting。这在其他所有内容中都可以正常工作)
甚至
Datetime dt = Convert.toDateTime(date); doesn't work
DateTime.ParseExact(date, "yyyy/MM/dd", format); doesn't work
所有这些都给了我同样的错误“字符串未被识别为有效的DateTime。”。我从带有ajax日历扩展器的文本框中收到我的日期值(CalendarExtender.Format =“dd / MM / yyyy”用于显示目的,这也适用于其他地方,即“dd / MM / yyyy”用于显示和“yyyy / MM” / dd“for procedure”除了这个最终值,它根本不会改变。 Everthing是通过我的机器完成的,没有外部服务器
答案 0 :(得分:4)
您的输入字符串的格式与您使用DateEx.ParseExact提供的格式不同。
为此起作用
DateTime.ParseExact(date, "yyyy/MM/dd", format);
您必须以年/月/日格式输入日期。但是你的字符串是日/月/年。
这应该会更好。
string date = "27/02/2013";
DateTime parsedDate = DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture);
答案 1 :(得分:3)
您的日期为date = "27/02/2013";
,您当前的格式(DateTime.ParseExact
)为"yyyy/MM/dd"
,应为:
"dd/MM/yyyy"
因此以下代码应该可行。
string date = "27/02/2013";
DateTime dt = DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture);
您还可以使用格式"d/M/yyyy"
来处理单个或两位数的日期/月份。