-2

我知道这个问题之前已经被问过并使用各种方法解决了。

我正在将值从字符串转换为 DateTime。

在整个项目中,我使用了相同的 CultureInfo,所有使用 Convert.ToDateTime() 转换为日期的字符串,但现在有一个文本字段拒绝转换。

我努力了:

string date = "27/02/2013";
string startdated = (Convert.ToDateTime(date)).ToString("yyyy/MM/dd");

(转换为日期时间并将其更改回我需要的格式。这适用于其他一切)

甚至

Datetime dt = Convert.toDateTime(date); doesn't work 
DateTime.ParseExact(date, "yyyy/MM/dd", format); doesn't work

并且都给我同样的错误“字符串未被识别为有效的日期时间。”。我从带有 ajax 日历扩展器的文本框中接收我的日期值(CalendarExtender.Format =“dd/MM/yyyy”用于显示目的,这也适用于其他任何地方,即“dd/MM/yyyy”用于显示和“yyyy/MM /dd" 用于过程)除了这个最终值不会改变。一切都是通过我的机器完成的,没有外部服务器

4

2 回答 2

4

您的输入字符串的格式与您提供的 DateTime.ParseExact 格式不同。

为了这个工作

DateTime.ParseExact(date, "yyyy/MM/dd", format); 

您必须以年/月/日格式输入日期。但是你的字符串在day/month/year

这应该会更好。

string date = "27/02/2013";
DateTime parsedDate = DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture); 
于 2013-02-27T10:41:24.543 回答
3

您的日期是date = "27/02/2013";并且您当前的格式(in 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"处理一位数或两位数日期/月份的格式。

于 2013-02-27T10:41:24.183 回答