日期格式" dd / MM / yyyy"到" yyyy / MM / dd"

时间:2013-02-27 10:39:11

标签: c#

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

我正在将字符串中的值转换为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是通过我的机器完成的,没有外部服务器

2 个答案:

答案 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"来处理单个或两位数的日期/月份。